{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ESMM 简介\n",
    "\n",
    "Entire Space Multi-task Model (ESMM)[1] 是阿里妈妈精准定向广告算法团队研发的新型多任务联合训练算法范式。\n",
    "\n",
    "在诸如信息检索、推荐系统、在线广告投放系统等工业级的应用中准确预估转化率（post-click conversion rate，CVR）是至关重要的。例如，在电商平台的推荐系统中，最大化场景商品交易总额（GMV）是平台的重要目标之一，而GMV可以拆解为流量×点击率×转化率×客单价，可见转化率是优化目标的重要因子；从用户体验的角度来说准确预估的转换率被用来平衡用户的点击偏好与购买偏好。\n",
    "\n",
    "传统的CVR预估任务通常采用类似于CTR预估的技术，比如最近很流行的深度学习模型。然而，有别于CTR预估任务，CVR预估任务面临一些特有的挑战：1) 样本选择偏差；2) 训练数据稀疏；3) 延迟反馈等。\n",
    "\n",
    "ESMM模型利用用户行为序列数据在完整样本空间建模，避免了传统CVR模型经常遭遇的样本选择偏差和训练数据稀疏的问题，取得了显著的效果。另一方面，ESMM模型首次提出了利用学习CTR和CTCVR的辅助任务迂回学习CVR的思路。ESMM模型中的BASE子网络可以替换为任意的学习模型，因此ESMM的框架可以非常容易地和其他学习模型集成，从而吸收其他学习模型的优势，进一步提升学习效果，想象空间巨大。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 文档内容说明\n",
    "本文旨在介绍ESMM以及如何使用ESMM开源项目进行实际业务生产所用，阅读完成后，你可以了解到：\n",
    "\n",
    "* ESMM的基本系统组成\n",
    "* ESMM开源代码的运行和使用\n",
    "* 应用ESMM到具体实践的方法\n",
    "\n",
    "受限于篇幅以及主旨，以下内容本文不涉及，或请参阅相关文档：\n",
    "* 公开数据集的下载、使用和授权\n",
    "    * Ali-CCP：Alibaba Click and Conversion Prediction请参阅：[https://tianchi.aliyun.com/datalab/dataSet.html?dataId=408](https://tianchi.aliyun.com/datalab/dataSet.html?dataId=408)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ESMM 适用的问题\n",
    "\n",
    "\n",
    "<img src=\"assets/impression_click_buy.png\"/>\n",
    "\n",
    "\n",
    "ESMM 充分利用用户行为的序列模式，在 CTR 和 CTCVR 两项辅助任务的帮助下，优雅地解决了在实践中遇到的 CVR 建模 \\$\\textbf{SSB}\\$ 和 \\$\\textbf{DS}\\$ 的挑战。ESMM 可以很容易地推广到具有序列依赖性的用户行为(浏览、点击、加购、购买等)预估中，构建跨域多场景全链路预估模型。\n",
    "\n",
    "\n",
    "\n",
    "<img src=\"assets/system_overview.png\"/>\n",
    "\n",
    "广告或推荐系统中，用户行为的系统链路可以表示为 \\$召回 \\rightarrow  粗排 \\rightarrow 精排 \\rightarrow 展现 \\rightarrow 点击 \\rightarrow 转化 \\rightarrow 复购 \\$ 的序列。通常我们在引擎请求的时候进行多阶段的综合排序并不断选取头部的子集传给下一级，最终在展现阶段返回给用户。每阶段任务的输入量级都会因为上一阶段任务经过系统筛选（比如 召回到粗排、粗排到精排、精排到展现）或者用户主动筛选（比如 展现到点击、点击到转化、转化到复购）而逐步减少。ESMM 适用于成熟的电商推荐或者广告全链路预估系统。我们也希望本文的读者或者使用者如果在ESMM应用的实践中有任何困难，可随时与我们联系：maxiao.mx@alibaba-inc.com"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ESMM 框架介绍\n",
    "\n",
    "## 算法原理\n",
    "\n",
    "ESMM 引入两个预估展现点击率（CTR）和展现后点击转化率（CTCVR）作为辅助任务。ESMM 将 pCVR 作为一个中间变量，并将其乘以 pCTR 得到 pCTCVR，而不是直接基于有偏的点击样本子集进行 CVR 模型训练。pCTCVR 和 pCTR 是在全空间中以所有展现样本估计的，因此衍生的 pCVR 也适用于全空间并且缓解了 \\$\\textbf{SSB}\\$ 问题。此外，CVR 任务的特征表示网络与 CTR 任务共享，后者用更丰富的样本进行训练。这种参数共享遵循特征表示迁移学习范式，并为缓解 \\$\\textbf{DS}\\$ 问题提供了显著的帮助。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 全空间建模\n",
    "pCTR和pCTCVR是ESMM在全空间实际预估的变量。这种乘法形式使得三个关联和共同训练的分类器能够在训练期间利用数据的序列模式并相互传递信息。ESMM的损失函数如下，它由 CTR 和 CTCVR 任务中的两个损失项组成，这些任务通过所有展现次数的样本进行计算。\n",
    "\n",
    "\\begin{equation}\n",
    "\\begin{split}\n",
    "L(\\theta*{cvr}, \\theta*{ctr}) = \\sum*{i=1}^N l(y\\_i, f(\\textbf{x}*i;\\theta*{ctr})) + \\sum*{i=1}^N l(y\\_i&z\\_i, f(\\textbf{x}*i;\\theta*{ctr}) \\times f(\\textbf{x}*i;\\theta*{cvr}))\n",
    "\\end{split}\n",
    "\\end{equation}\n",
    "\n",
    "其中 \\$\\theta\\_{ctr}\\$ 和 \\$\\theta\\_{cvr}\\$ 是 CTR 和 CVR 网络的参数，l函数是交叉熵损失函数。\n",
    "在数学上，公式 Eq.（3) 将 \\$y \\rightarrow z\\$ 分解为两部分对应于 CTR 和 CTCVR 任务的标签，构造训练数据集如下：\n",
    "对于CTR任务，单击的展现被标记为\\$y = 1\\$，否则为 \\$y=0\\$；对于 CTCVR 任务，同时发生点击和转化事件的展现被标记为 \\$ y & z = 1 \\$ ，否则 \\$ y & z = 0 \\$，\\$y\\$ 和 \\$ y & z \\$ ，这实际上是利用点击和转化标签的序列依赖性。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## 迁移学习\n",
    "正如 BASE 模型部分介绍的那样，Embedding Layer 将大规模稀疏输入映射到低维稠密向量中，它占据深度网络的大部分参数，需要大量的样本来进行训练。在 ESMM 中，CVR 网络的 Embedding 参数与 CTR 任务共享。它遵循特征表示转化学习范式。CTR 任务所有展现次数的样本规模比 CVR 任务要丰富多个量级。该参数共享机制使 ESMM 中的 CVR 网络可以从未点击的展现中学习，缓解了数据稀疏性问题。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 结构扩展性\n",
    "\n",
    "它主要由两个子网组成：CVR 网络在图的左边部分和右边部分的 CTR 网络。 CVR 和 CTR 网络都采用与 BASE 模型相同的结构。 CTCVR 将 CVR 和 CTR 网络的输出结果相乘作为输出。其中每个子网络结果可以被替代为任意的分类预估网络。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ESMM 训练示例"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 下载数据集\n",
    "* 公开数据集的下载、使用和授权\n",
    "    * Ali-CCP：Alibaba Click and Conversion Prediction请参阅：[https://tianchi.aliyun.com/datalab/dataSet.html?dataId=408](https://tianchi.aliyun.com/datalab/dataSet.html?dataId=408)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "import numpy as np\n",
    "from collections import Counter\n",
    "import tensorflow as tf\n",
    "\n",
    "import os\n",
    "import pickle\n",
    "import re\n",
    "from tensorflow.python.ops import math_ops"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 先来看看数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 经过Step1&2后，采样2.5%的数据样例，其中训练和测试各是100万条\n",
    "esmm_public/ctr_cvr_data$ ll\n",
    "\n",
    "-rw-r--r--  1 maxiao  staff   95592738 Dec  4 08:56 sampled_common_features_skeleton_test_sample_feature_column.csv\n",
    "\n",
    "-rw-r--r--  1 maxiao  staff   74272695 Dec  4 08:53 sampled_common_features_skeleton_train_sample_feature_column.csv\n",
    "\n",
    "-rw-r--r--  1 maxiao  staff  165569695 Dec  4 08:53 sampled_sample_skeleton_test_sample_feature_column.csv\n",
    "\n",
    "-rw-r--r--  1 maxiao  staff  164016605 Dec  4 08:51 sampled_sample_skeleton_train_sample_feature_column.csv"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 样本骨架 数据结构\n",
    "样本骨架文件中的每一条记录代表一次用户浏览，并且由三个部分组成，下图详细描述了各部分属性与格式信息。\n",
    "<img src=\"assets/sample_skeleton.jpg\"/>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里的md5就是样本说明中的common_feature_index\n",
    "其中sample_feature_columns中的Com开头的字段表示什么？？？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sample_id</th>\n",
       "      <th>click</th>\n",
       "      <th>buy</th>\n",
       "      <th>md5</th>\n",
       "      <th>feature_num</th>\n",
       "      <th>ItemID</th>\n",
       "      <th>CategoryID</th>\n",
       "      <th>ShopID</th>\n",
       "      <th>NodeID</th>\n",
       "      <th>BrandID</th>\n",
       "      <th>Com_CateID</th>\n",
       "      <th>Com_ShopID</th>\n",
       "      <th>Com_BrandID</th>\n",
       "      <th>Com_NodeID</th>\n",
       "      <th>PID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>13</td>\n",
       "      <td>5159029</td>\n",
       "      <td>8315494</td>\n",
       "      <td>8912535</td>\n",
       "      <td>9083957|9056998|9032056|9071316|9050356|903987...</td>\n",
       "      <td>9254421</td>\n",
       "      <td>9353819</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>112</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>8</td>\n",
       "      <td>8041518</td>\n",
       "      <td>8316893</td>\n",
       "      <td>8362378</td>\n",
       "      <td>9106161|9080195|9070529</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9355130</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>11</td>\n",
       "      <td>7165204</td>\n",
       "      <td>8315281</td>\n",
       "      <td>8888839</td>\n",
       "      <td>9073025|9107798|9107697</td>\n",
       "      <td>9185652</td>\n",
       "      <td>9353613</td>\n",
       "      <td>9744985</td>\n",
       "      <td>9882067</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>164</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>11</td>\n",
       "      <td>5585003</td>\n",
       "      <td>8315277</td>\n",
       "      <td>8801026</td>\n",
       "      <td>9022971|9023762|9095211</td>\n",
       "      <td>9159151</td>\n",
       "      <td>9353609</td>\n",
       "      <td>9686171</td>\n",
       "      <td>9862825</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>170</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>10</td>\n",
       "      <td>6069816</td>\n",
       "      <td>8316856</td>\n",
       "      <td>8876226</td>\n",
       "      <td>9061036|9093406|9073297</td>\n",
       "      <td>9242621</td>\n",
       "      <td>9355093</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9922391</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sample_id  click  buy               md5  feature_num   ItemID CategoryID  \\\n",
       "0         75      0    0  bacff91692951881           13  5159029    8315494   \n",
       "1        112      0    0  bacff91692951881            8  8041518    8316893   \n",
       "2        150      0    0  bacff91692951881           11  7165204    8315281   \n",
       "3        164      0    0  bacff91692951881           11  5585003    8315277   \n",
       "4        170      0    0  bacff91692951881           10  6069816    8316856   \n",
       "\n",
       "    ShopID                                             NodeID  BrandID  \\\n",
       "0  8912535  9083957|9056998|9032056|9071316|9050356|903987...  9254421   \n",
       "1  8362378                            9106161|9080195|9070529    <PAD>   \n",
       "2  8888839                            9073025|9107798|9107697  9185652   \n",
       "3  8801026                            9022971|9023762|9095211  9159151   \n",
       "4  8876226                            9061036|9093406|9073297  9242621   \n",
       "\n",
       "  Com_CateID Com_ShopID Com_BrandID Com_NodeID      PID  \n",
       "0    9353819      <PAD>       <PAD>      <PAD>  9351665  \n",
       "1    9355130      <PAD>       <PAD>      <PAD>  9351665  \n",
       "2    9353613    9744985     9882067      <PAD>  9351665  \n",
       "3    9353609    9686171     9862825      <PAD>  9351665  \n",
       "4    9355093      <PAD>     9922391      <PAD>  9351665  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# sample_feature_columns = ['sample_id', 'click', 'buy', 'md5', 'feature_num', 'ItemID','CategoryID','ShopID','NodeID','BrandID','Com_CateID',\n",
    "#                      'Com_ShopID','Com_BrandID','Com_NodeID','PID']\n",
    "train_sample_table = pd.read_csv('../ctr_cvr_data/BuyWeight_sampled_sample_skeleton_train_sample_feature_column.csv', sep=',',\\\n",
    "                                  dtype={'ItemID': object, 'CategoryID': object, 'ShopID': object, 'PID': object},\\\n",
    "                                  header=0, names=None, engine = 'python')\n",
    "train_sample_table.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sample_id</th>\n",
       "      <th>click</th>\n",
       "      <th>buy</th>\n",
       "      <th>md5</th>\n",
       "      <th>feature_num</th>\n",
       "      <th>ItemID</th>\n",
       "      <th>CategoryID</th>\n",
       "      <th>ShopID</th>\n",
       "      <th>NodeID</th>\n",
       "      <th>BrandID</th>\n",
       "      <th>Com_CateID</th>\n",
       "      <th>Com_ShopID</th>\n",
       "      <th>Com_BrandID</th>\n",
       "      <th>Com_NodeID</th>\n",
       "      <th>PID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>543b0cd53c7d5858</td>\n",
       "      <td>8</td>\n",
       "      <td>5802912</td>\n",
       "      <td>8316509</td>\n",
       "      <td>8814075</td>\n",
       "      <td>9044230|9078066|9072583</td>\n",
       "      <td>9286972</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>37</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>543b0cd53c7d5858</td>\n",
       "      <td>11</td>\n",
       "      <td>6628259</td>\n",
       "      <td>8315279</td>\n",
       "      <td>8746722</td>\n",
       "      <td>9103580|9109960|9113454|9113276|9029850</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9353611</td>\n",
       "      <td>9649339</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>49</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>543b0cd53c7d5858</td>\n",
       "      <td>11</td>\n",
       "      <td>6972165</td>\n",
       "      <td>8317356</td>\n",
       "      <td>8331019</td>\n",
       "      <td>9072169|9078426|9073266|9056371|9049913|910983...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>139</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>a2ea4295d36bc432</td>\n",
       "      <td>13</td>\n",
       "      <td>7772257</td>\n",
       "      <td>8316875</td>\n",
       "      <td>8424009</td>\n",
       "      <td>9039527|9018404|9026925|9107731|9031472|906277...</td>\n",
       "      <td>9279217</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>188</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>4b7c891bbf454188</td>\n",
       "      <td>8</td>\n",
       "      <td>5322018</td>\n",
       "      <td>8317527</td>\n",
       "      <td>8899037</td>\n",
       "      <td>9095770|9063374|9105026</td>\n",
       "      <td>9248573</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351666</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sample_id  click  buy               md5  feature_num   ItemID CategoryID  \\\n",
       "0         20      0    0  543b0cd53c7d5858            8  5802912    8316509   \n",
       "1         37      0    0  543b0cd53c7d5858           11  6628259    8315279   \n",
       "2         49      0    0  543b0cd53c7d5858           11  6972165    8317356   \n",
       "3        139      0    0  a2ea4295d36bc432           13  7772257    8316875   \n",
       "4        188      0    0  4b7c891bbf454188            8  5322018    8317527   \n",
       "\n",
       "    ShopID                                             NodeID  BrandID  \\\n",
       "0  8814075                            9044230|9078066|9072583  9286972   \n",
       "1  8746722            9103580|9109960|9113454|9113276|9029850    <PAD>   \n",
       "2  8331019  9072169|9078426|9073266|9056371|9049913|910983...    <PAD>   \n",
       "3  8424009  9039527|9018404|9026925|9107731|9031472|906277...  9279217   \n",
       "4  8899037                            9095770|9063374|9105026  9248573   \n",
       "\n",
       "  Com_CateID Com_ShopID Com_BrandID Com_NodeID      PID  \n",
       "0      <PAD>      <PAD>       <PAD>      <PAD>  9351665  \n",
       "1    9353611    9649339       <PAD>      <PAD>  9351665  \n",
       "2      <PAD>      <PAD>       <PAD>      <PAD>  9351665  \n",
       "3      <PAD>      <PAD>       <PAD>      <PAD>  9351665  \n",
       "4      <PAD>      <PAD>       <PAD>      <PAD>  9351666  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sample_feature_columns = ['sample_id', 'click', 'buy', 'md5', 'feature_num', 'ItemID','CategoryID','ShopID','NodeID','BrandID','Com_CateID',\n",
    "                     'Com_ShopID','Com_BrandID','Com_NodeID','PID']\n",
    "test_sample_table = pd.read_csv('../ctr_cvr_data/BuyWeight_sampled_sample_skeleton_test_sample_feature_column.csv', sep=',', \\\n",
    "                                  dtype={'ItemID': object, 'CategoryID': object, 'ShopID': object, 'PID': object},\\\n",
    "                                  header=0, names=None, engine = 'python')\n",
    "test_sample_table.head()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Common Feature 数据结构\n",
    "公共特征文件中的一条记录代表一个特定的特征集合，这个特征集合被样本骨架文件中若干条记录共享，下图所描述。在公共特征文件中同样存在common_feature_index作为主键，与样本骨架文件中的同名字段沟通描述这种共享关系。\n",
    "<img src=\"assets/common_feature.jpg\"/>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>md5</th>\n",
       "      <th>feature_num</th>\n",
       "      <th>UserID</th>\n",
       "      <th>User_CateIDs</th>\n",
       "      <th>User_ShopIDs</th>\n",
       "      <th>User_BrandIDs</th>\n",
       "      <th>User_NodeIDs</th>\n",
       "      <th>User_Cluster</th>\n",
       "      <th>User_ClusterID</th>\n",
       "      <th>User_Gender</th>\n",
       "      <th>User_Age</th>\n",
       "      <th>User_Level1</th>\n",
       "      <th>User_Level2</th>\n",
       "      <th>User_Occupation</th>\n",
       "      <th>User_Geo</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>00026b381ec790a3</td>\n",
       "      <td>563</td>\n",
       "      <td>413122</td>\n",
       "      <td>451119|450877|450656|449078|450657|449209|4492...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3561749|3760313|3683999|3856639|3775121|371605...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438757</td>\n",
       "      <td>3438768</td>\n",
       "      <td>3438774</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>000355a921e0225f</td>\n",
       "      <td>452</td>\n",
       "      <td>426366</td>\n",
       "      <td>451119|451117|450954|450877|449079|451120|4506...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3543869|3761098|3556787|3538704|3599666|378386...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438686</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>3438778</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0003dbee3f6f7e81</td>\n",
       "      <td>317</td>\n",
       "      <td>258626</td>\n",
       "      <td>450954|445398|449079|451120|449082|450276|4510...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3808035|3856639|3667965|3633395|3696256|356905...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438760</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438772</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>00093b560daa682c</td>\n",
       "      <td>428</td>\n",
       "      <td>223293</td>\n",
       "      <td>445232|449090|450954|455013|449079|446075|4502...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3782769|3858194|3856639|3726796|3643214|349068...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438665</td>\n",
       "      <td>3438761</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438773</td>\n",
       "      <td>3438777</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864887</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>000d2af332a07ad7</td>\n",
       "      <td>464</td>\n",
       "      <td>413926</td>\n",
       "      <td>450880|449925|449308|449813|449360|445206|4506...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3641085|3652956|3779828|3667401|3658148|366395...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438684</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>3438778</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864887</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                md5  feature_num  UserID  \\\n",
       "0  00026b381ec790a3          563  413122   \n",
       "1  000355a921e0225f          452  426366   \n",
       "2  0003dbee3f6f7e81          317  258626   \n",
       "3  00093b560daa682c          428  223293   \n",
       "4  000d2af332a07ad7          464  413926   \n",
       "\n",
       "                                        User_CateIDs User_ShopIDs  \\\n",
       "0  451119|450877|450656|449078|450657|449209|4492...        <PAD>   \n",
       "1  451119|451117|450954|450877|449079|451120|4506...        <PAD>   \n",
       "2  450954|445398|449079|451120|449082|450276|4510...        <PAD>   \n",
       "3  445232|449090|450954|455013|449079|446075|4502...        <PAD>   \n",
       "4  450880|449925|449308|449813|449360|445206|4506...        <PAD>   \n",
       "\n",
       "                                       User_BrandIDs User_NodeIDs  \\\n",
       "0  3561749|3760313|3683999|3856639|3775121|371605...        <PAD>   \n",
       "1  3543869|3761098|3556787|3538704|3599666|378386...        <PAD>   \n",
       "2  3808035|3856639|3667965|3633395|3696256|356905...        <PAD>   \n",
       "3  3782769|3858194|3856639|3726796|3643214|349068...        <PAD>   \n",
       "4  3641085|3652956|3779828|3667401|3658148|366395...        <PAD>   \n",
       "\n",
       "  User_Cluster User_ClusterID User_Gender User_Age User_Level1 User_Level2  \\\n",
       "0      3438658        3438757     3438768  3438774       <PAD>     3438782   \n",
       "1      3438686        3438762     3438769  3438774     3438778     3438782   \n",
       "2      3438658        3438760     3438769  3438772       <PAD>     3438782   \n",
       "3      3438665        3438761     3438769  3438773     3438777     3438782   \n",
       "4      3438684        3438762     3438769  3438774     3438778     3438782   \n",
       "\n",
       "  User_Occupation User_Geo  \n",
       "0         3864885  3864890  \n",
       "1         3864885  3864890  \n",
       "2         3864885  3864889  \n",
       "3         3864885  3864887  \n",
       "4         3864885  3864887  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "common_feature_columns = ['md5', 'feature_num', 'UserID', 'User_CateIDs', 'User_ShopIDs', 'User_BrandIDs', 'User_NodeIDs', 'User_Cluster', \n",
    "                     'User_ClusterID', 'User_Gender', 'User_Age', 'User_Level1', 'User_Level2', \n",
    "                     'User_Occupation', 'User_Geo']\n",
    "train_common_features = pd.read_csv('../ctr_cvr_data/BuyWeight_sampled_common_features_skeleton_train_sample_feature_column.csv', sep=',', header=0, names=None, engine = 'python')\n",
    "train_common_features.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>md5</th>\n",
       "      <th>feature_num</th>\n",
       "      <th>UserID</th>\n",
       "      <th>User_CateIDs</th>\n",
       "      <th>User_ShopIDs</th>\n",
       "      <th>User_BrandIDs</th>\n",
       "      <th>User_NodeIDs</th>\n",
       "      <th>User_Cluster</th>\n",
       "      <th>User_ClusterID</th>\n",
       "      <th>User_Gender</th>\n",
       "      <th>User_Age</th>\n",
       "      <th>User_Level1</th>\n",
       "      <th>User_Level2</th>\n",
       "      <th>User_Occupation</th>\n",
       "      <th>User_Geo</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>810d5366057b3f58</td>\n",
       "      <td>1025</td>\n",
       "      <td>412797</td>\n",
       "      <td>451311|451286|451133|450954|450656|446913|4506...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3592299|3449840|3650730|3650822|3792091|352433...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438725</td>\n",
       "      <td>3438760</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438772</td>\n",
       "      <td>3438778</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864888</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0001970d9ebf72cf</td>\n",
       "      <td>126</td>\n",
       "      <td>64841</td>\n",
       "      <td>451130|450658|450656|451639|453921|453929|4490...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3704348|3704152|3852278|3849481|3580992|366112...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438756</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438771</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438780</td>\n",
       "      <td>3864885</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0010d0b9633bb5b0</td>\n",
       "      <td>250</td>\n",
       "      <td>66015</td>\n",
       "      <td>455028|451998|451100|445269|445990|450099|4557...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3520924|3505215|3588720|3541711|3801132|382945...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438670</td>\n",
       "      <td>3438756</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438771</td>\n",
       "      <td>3438777</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864886</td>\n",
       "      <td>3864889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>001459b610a7c186</td>\n",
       "      <td>395</td>\n",
       "      <td>235356</td>\n",
       "      <td>450880|456589|450870|450658|451641|451639|4508...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3765068|3620179|3619511|3668302|3610026|378643...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>001efa0ef1001dd1</td>\n",
       "      <td>849</td>\n",
       "      <td>131668</td>\n",
       "      <td>445600|450229|449070|449317|450658|449178|4509...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3628671|3853135|3805119|3848839|3651862|372880...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438685</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>3438778</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864888</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                md5  feature_num  UserID  \\\n",
       "0  810d5366057b3f58         1025  412797   \n",
       "1  0001970d9ebf72cf          126   64841   \n",
       "2  0010d0b9633bb5b0          250   66015   \n",
       "3  001459b610a7c186          395  235356   \n",
       "4  001efa0ef1001dd1          849  131668   \n",
       "\n",
       "                                        User_CateIDs User_ShopIDs  \\\n",
       "0  451311|451286|451133|450954|450656|446913|4506...        <PAD>   \n",
       "1  451130|450658|450656|451639|453921|453929|4490...        <PAD>   \n",
       "2  455028|451998|451100|445269|445990|450099|4557...        <PAD>   \n",
       "3  450880|456589|450870|450658|451641|451639|4508...        <PAD>   \n",
       "4  445600|450229|449070|449317|450658|449178|4509...        <PAD>   \n",
       "\n",
       "                                       User_BrandIDs User_NodeIDs  \\\n",
       "0  3592299|3449840|3650730|3650822|3792091|352433...        <PAD>   \n",
       "1  3704348|3704152|3852278|3849481|3580992|366112...        <PAD>   \n",
       "2  3520924|3505215|3588720|3541711|3801132|382945...        <PAD>   \n",
       "3  3765068|3620179|3619511|3668302|3610026|378643...        <PAD>   \n",
       "4  3628671|3853135|3805119|3848839|3651862|372880...        <PAD>   \n",
       "\n",
       "  User_Cluster User_ClusterID User_Gender User_Age User_Level1 User_Level2  \\\n",
       "0      3438725        3438760     3438769  3438772     3438778     3438782   \n",
       "1      3438658        3438756     3438769  3438771       <PAD>     3438780   \n",
       "2      3438670        3438756     3438769  3438771     3438777     3438782   \n",
       "3        <PAD>          <PAD>       <PAD>    <PAD>       <PAD>       <PAD>   \n",
       "4      3438685        3438762     3438769  3438774     3438778     3438782   \n",
       "\n",
       "  User_Occupation User_Geo  \n",
       "0         3864885  3864888  \n",
       "1         3864885    <PAD>  \n",
       "2         3864886  3864889  \n",
       "3           <PAD>    <PAD>  \n",
       "4         3864885  3864888  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "common_feature_columns = ['md5', 'feature_num', 'UserID', 'User_CateIDs', 'User_ShopIDs', 'User_BrandIDs', 'User_NodeIDs', 'User_Cluster', \n",
    "                     'User_ClusterID', 'User_Gender', 'User_Age', 'User_Level1', 'User_Level2', \n",
    "                     'User_Occupation', 'User_Geo']\n",
    "test_common_features = pd.read_csv('../ctr_cvr_data/BuyWeight_sampled_common_features_skeleton_test_sample_feature_column.csv', sep=',', header=0, names=None, engine = 'python')\n",
    "test_common_features.head()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 两表join示例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "------------------train_sample_table.shape---------------------------\n",
      "(207205, 15)\n",
      "------------------train_common_features.shape---------------------------\n",
      "(88702, 15)\n",
      "------------------test_sample_table.shape---------------------------\n",
      "(1085721, 15)\n",
      "------------------test_common_features.shape---------------------------\n",
      "(541074, 15)\n",
      "------------------merge_data.shape = train_sample_table+train_common_features---------------------------\n",
      "(170164, 29)\n",
      "------------------merge_data.columns---------------------------\n",
      "Index(['sample_id', 'click', 'buy', 'md5', 'feature_num_x', 'ItemID',\n",
      "       'CategoryID', 'ShopID', 'NodeID', 'BrandID', 'Com_CateID', 'Com_ShopID',\n",
      "       'Com_BrandID', 'Com_NodeID', 'PID', 'feature_num_y', 'UserID',\n",
      "       'User_CateIDs', 'User_ShopIDs', 'User_BrandIDs', 'User_NodeIDs',\n",
      "       'User_Cluster', 'User_ClusterID', 'User_Gender', 'User_Age',\n",
      "       'User_Level1', 'User_Level2', 'User_Occupation', 'User_Geo'],\n",
      "      dtype='object')\n",
      "------------------merge_data.head()---------------------------\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sample_id</th>\n",
       "      <th>click</th>\n",
       "      <th>buy</th>\n",
       "      <th>md5</th>\n",
       "      <th>feature_num_x</th>\n",
       "      <th>ItemID</th>\n",
       "      <th>CategoryID</th>\n",
       "      <th>ShopID</th>\n",
       "      <th>NodeID</th>\n",
       "      <th>BrandID</th>\n",
       "      <th>...</th>\n",
       "      <th>User_BrandIDs</th>\n",
       "      <th>User_NodeIDs</th>\n",
       "      <th>User_Cluster</th>\n",
       "      <th>User_ClusterID</th>\n",
       "      <th>User_Gender</th>\n",
       "      <th>User_Age</th>\n",
       "      <th>User_Level1</th>\n",
       "      <th>User_Level2</th>\n",
       "      <th>User_Occupation</th>\n",
       "      <th>User_Geo</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>13</td>\n",
       "      <td>5159029</td>\n",
       "      <td>8315494</td>\n",
       "      <td>8912535</td>\n",
       "      <td>9083957|9056998|9032056|9071316|9050356|903987...</td>\n",
       "      <td>9254421</td>\n",
       "      <td>...</td>\n",
       "      <td>3534361|3654192|3503151|3722909|3650730|376454...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864887</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>112</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>8</td>\n",
       "      <td>8041518</td>\n",
       "      <td>8316893</td>\n",
       "      <td>8362378</td>\n",
       "      <td>9106161|9080195|9070529</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>...</td>\n",
       "      <td>3534361|3654192|3503151|3722909|3650730|376454...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864887</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>11</td>\n",
       "      <td>7165204</td>\n",
       "      <td>8315281</td>\n",
       "      <td>8888839</td>\n",
       "      <td>9073025|9107798|9107697</td>\n",
       "      <td>9185652</td>\n",
       "      <td>...</td>\n",
       "      <td>3534361|3654192|3503151|3722909|3650730|376454...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864887</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>164</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>11</td>\n",
       "      <td>5585003</td>\n",
       "      <td>8315277</td>\n",
       "      <td>8801026</td>\n",
       "      <td>9022971|9023762|9095211</td>\n",
       "      <td>9159151</td>\n",
       "      <td>...</td>\n",
       "      <td>3534361|3654192|3503151|3722909|3650730|376454...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864887</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>170</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>10</td>\n",
       "      <td>6069816</td>\n",
       "      <td>8316856</td>\n",
       "      <td>8876226</td>\n",
       "      <td>9061036|9093406|9073297</td>\n",
       "      <td>9242621</td>\n",
       "      <td>...</td>\n",
       "      <td>3534361|3654192|3503151|3722909|3650730|376454...</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438658</td>\n",
       "      <td>3438762</td>\n",
       "      <td>3438769</td>\n",
       "      <td>3438774</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>3438782</td>\n",
       "      <td>3864885</td>\n",
       "      <td>3864887</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 29 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   sample_id  click  buy               md5  feature_num_x   ItemID CategoryID  \\\n",
       "0         75      0    0  bacff91692951881             13  5159029    8315494   \n",
       "1        112      0    0  bacff91692951881              8  8041518    8316893   \n",
       "2        150      0    0  bacff91692951881             11  7165204    8315281   \n",
       "3        164      0    0  bacff91692951881             11  5585003    8315277   \n",
       "4        170      0    0  bacff91692951881             10  6069816    8316856   \n",
       "\n",
       "    ShopID                                             NodeID  BrandID  ...  \\\n",
       "0  8912535  9083957|9056998|9032056|9071316|9050356|903987...  9254421  ...   \n",
       "1  8362378                            9106161|9080195|9070529    <PAD>  ...   \n",
       "2  8888839                            9073025|9107798|9107697  9185652  ...   \n",
       "3  8801026                            9022971|9023762|9095211  9159151  ...   \n",
       "4  8876226                            9061036|9093406|9073297  9242621  ...   \n",
       "\n",
       "                                       User_BrandIDs User_NodeIDs  \\\n",
       "0  3534361|3654192|3503151|3722909|3650730|376454...        <PAD>   \n",
       "1  3534361|3654192|3503151|3722909|3650730|376454...        <PAD>   \n",
       "2  3534361|3654192|3503151|3722909|3650730|376454...        <PAD>   \n",
       "3  3534361|3654192|3503151|3722909|3650730|376454...        <PAD>   \n",
       "4  3534361|3654192|3503151|3722909|3650730|376454...        <PAD>   \n",
       "\n",
       "  User_Cluster User_ClusterID User_Gender  User_Age User_Level1 User_Level2  \\\n",
       "0      3438658        3438762     3438769   3438774       <PAD>     3438782   \n",
       "1      3438658        3438762     3438769   3438774       <PAD>     3438782   \n",
       "2      3438658        3438762     3438769   3438774       <PAD>     3438782   \n",
       "3      3438658        3438762     3438769   3438774       <PAD>     3438782   \n",
       "4      3438658        3438762     3438769   3438774       <PAD>     3438782   \n",
       "\n",
       "  User_Occupation User_Geo  \n",
       "0         3864885  3864887  \n",
       "1         3864885  3864887  \n",
       "2         3864885  3864887  \n",
       "3         3864885  3864887  \n",
       "4         3864885  3864887  \n",
       "\n",
       "[5 rows x 29 columns]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"------------------train_sample_table.shape---------------------------\")\n",
    "print(train_sample_table.shape)\n",
    "print(\"------------------train_common_features.shape---------------------------\")\n",
    "print(train_common_features.shape)\n",
    "\n",
    "print(\"------------------test_sample_table.shape---------------------------\")\n",
    "print(test_sample_table.shape)\n",
    "print(\"------------------test_common_features.shape---------------------------\")\n",
    "print(test_common_features.shape)\n",
    "\n",
    "merge_data = pd.merge(train_sample_table, train_common_features, on='md5',how='inner')\n",
    "\n",
    "print(\"------------------merge_data.shape = train_sample_table+train_common_features---------------------------\")\n",
    "print(merge_data.shape)\n",
    "print(\"------------------merge_data.columns---------------------------\")\n",
    "print(merge_data.columns)\n",
    "print(\"------------------merge_data.head()---------------------------\")\n",
    "merge_data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实现数据预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sample_id</th>\n",
       "      <th>click</th>\n",
       "      <th>buy</th>\n",
       "      <th>md5</th>\n",
       "      <th>feature_num</th>\n",
       "      <th>ItemID</th>\n",
       "      <th>CategoryID</th>\n",
       "      <th>ShopID</th>\n",
       "      <th>NodeID</th>\n",
       "      <th>BrandID</th>\n",
       "      <th>Com_CateID</th>\n",
       "      <th>Com_ShopID</th>\n",
       "      <th>Com_BrandID</th>\n",
       "      <th>Com_NodeID</th>\n",
       "      <th>PID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>13</td>\n",
       "      <td>5159029</td>\n",
       "      <td>8315494</td>\n",
       "      <td>8912535</td>\n",
       "      <td>9083957|9056998|9032056|9071316|9050356|903987...</td>\n",
       "      <td>9254421</td>\n",
       "      <td>9353819</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>112</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>8</td>\n",
       "      <td>8041518</td>\n",
       "      <td>8316893</td>\n",
       "      <td>8362378</td>\n",
       "      <td>9106161|9080195|9070529</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9355130</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>150</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>11</td>\n",
       "      <td>7165204</td>\n",
       "      <td>8315281</td>\n",
       "      <td>8888839</td>\n",
       "      <td>9073025|9107798|9107697</td>\n",
       "      <td>9185652</td>\n",
       "      <td>9353613</td>\n",
       "      <td>9744985</td>\n",
       "      <td>9882067</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>164</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>11</td>\n",
       "      <td>5585003</td>\n",
       "      <td>8315277</td>\n",
       "      <td>8801026</td>\n",
       "      <td>9022971|9023762|9095211</td>\n",
       "      <td>9159151</td>\n",
       "      <td>9353609</td>\n",
       "      <td>9686171</td>\n",
       "      <td>9862825</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>170</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>bacff91692951881</td>\n",
       "      <td>10</td>\n",
       "      <td>6069816</td>\n",
       "      <td>8316856</td>\n",
       "      <td>8876226</td>\n",
       "      <td>9061036|9093406|9073297</td>\n",
       "      <td>9242621</td>\n",
       "      <td>9355093</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9922391</td>\n",
       "      <td>&lt;PAD&gt;</td>\n",
       "      <td>9351665</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   sample_id  click  buy               md5  feature_num   ItemID CategoryID  \\\n",
       "0         75      0    0  bacff91692951881           13  5159029    8315494   \n",
       "1        112      0    0  bacff91692951881            8  8041518    8316893   \n",
       "2        150      0    0  bacff91692951881           11  7165204    8315281   \n",
       "3        164      0    0  bacff91692951881           11  5585003    8315277   \n",
       "4        170      0    0  bacff91692951881           10  6069816    8316856   \n",
       "\n",
       "    ShopID                                             NodeID  BrandID  \\\n",
       "0  8912535  9083957|9056998|9032056|9071316|9050356|903987...  9254421   \n",
       "1  8362378                            9106161|9080195|9070529    <PAD>   \n",
       "2  8888839                            9073025|9107798|9107697  9185652   \n",
       "3  8801026                            9022971|9023762|9095211  9159151   \n",
       "4  8876226                            9061036|9093406|9073297  9242621   \n",
       "\n",
       "  Com_CateID Com_ShopID Com_BrandID Com_NodeID      PID  \n",
       "0    9353819      <PAD>       <PAD>      <PAD>  9351665  \n",
       "1    9355130      <PAD>       <PAD>      <PAD>  9351665  \n",
       "2    9353613    9744985     9882067      <PAD>  9351665  \n",
       "3    9353609    9686171     9862825      <PAD>  9351665  \n",
       "4    9355093      <PAD>     9922391      <PAD>  9351665  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_sample_table.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    5159029\n",
       "1    8041518\n",
       "2    7165204\n",
       "3    5585003\n",
       "4    6069816\n",
       "Name: ItemID, dtype: object"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 打印Column和Types，确保Train和测试集可以一起序列化\n",
    "train_sample_table['ItemID'].head()\n",
    "\n",
    "\n",
    "# print(test_sample_table.head()['ItemID'])\n",
    "# print(train_common_features.head()['UserID'])\n",
    "# print(test_sample_table.dtypes)\n",
    "# print(train_sample_table.dtypes)\n",
    "#print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0    563\n",
       "1    452\n",
       "2    317\n",
       "3    428\n",
       "4    464\n",
       "Name: feature_num, dtype: int64"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_common_features.columns\n",
    "train_common_features['feature_num'].head()\n",
    "#train_sample_table.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "127585\n",
      "4471\n",
      "86851\n",
      "161649\n",
      "40611\n",
      "31195\n",
      "17421\n",
      "65796\n",
      "3\n",
      "value train 88389\n",
      "value test 206598\n",
      "inner product 41788\n"
     ]
    }
   ],
   "source": [
    "# 打印Unique ID数  每个特征取值的种类\n",
    "value1 = set(train_common_features['UserID'].tolist())\n",
    "print(len(train_sample_table['ItemID'].unique()))\n",
    "print(len(train_sample_table['CategoryID'].unique()))\n",
    "print(len(train_sample_table['ShopID'].unique()))\n",
    "print(len(train_sample_table['NodeID'].unique()))\n",
    "print(len(train_sample_table['BrandID'].unique()))\n",
    "print(len(train_sample_table['Com_ShopID'].unique()))\n",
    "print(len(train_sample_table['Com_BrandID'].unique()))\n",
    "print(len(train_sample_table['Com_NodeID'].unique()))\n",
    "print(len(train_sample_table['PID'].unique()))\n",
    "\n",
    "\n",
    "#11176 640062 90 6111 258552 101090 4695 91412 43051 3\n",
    "\n",
    "value1 = set(train_sample_table['ShopID'].tolist())\n",
    "value2 = set(test_sample_table['ShopID'].tolist())\n",
    "\n",
    "value1 = set(train_common_features['UserID'].tolist())\n",
    "value2 = set(test_common_features['UserID'].tolist())\n",
    "print(\"value train\",len(value1))\n",
    "print(\"value test\",len(value2))\n",
    "print(\"inner product\",len(value1&value2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "def load_ESMM_Train_and_Test_Data():\n",
    "    \"\"\"\n",
    "    Load Dataset from File\n",
    "    \"\"\"\n",
    "    sample_feature_columns = ['sample_id', 'click', 'buy', 'md5', 'feature_num', 'ItemID','CategoryID','ShopID','NodeID','BrandID','Com_CateID',\n",
    "                     'Com_ShopID','Com_BrandID','Com_NodeID','PID']\n",
    "    \n",
    "    common_feature_columns = ['md5', 'feature_num', 'UserID', 'User_CateIDs', 'User_ShopIDs', 'User_BrandIDs', 'User_NodeIDs', 'User_Cluster', \n",
    "                     'User_ClusterID', 'User_Gender', 'User_Age', 'User_Level1', 'User_Level2', \n",
    "                     'User_Occupation', 'User_Geo']\n",
    "    \n",
    "    # 强制转化为其中部分列为object，是因为训练和测试某些列，Pandas load类型不一致，影响后面的序列化\n",
    "    train_sample_table = pd.read_table('./ctr_cvr_data/BuyWeight_sampled_sample_skeleton_train_sample_feature_column.csv', sep=',',\\\n",
    "                                  dtype={'ItemID': object, 'CategoryID': object, 'ShopID': object, 'PID': object},\\\n",
    "                                  header=0, names=None, engine = 'python')\n",
    "    train_common_features = pd.read_table('./ctr_cvr_data/BuyWeight_sampled_common_features_skeleton_train_sample_feature_column.csv', sep=',', header=0, names=None, engine = 'python')\n",
    "    \n",
    "    test_sample_table = pd.read_table('./ctr_cvr_data/BuyWeight_sampled_sample_skeleton_test_sample_feature_column.csv', sep=',', \\\n",
    "                                  dtype={'ItemID': object, 'CategoryID': object, 'ShopID': object, 'PID': object},\\\n",
    "                                  header=0, names=None, engine = 'python')\n",
    "    test_common_features = pd.read_table('./ctr_cvr_data/BuyWeight_sampled_common_features_skeleton_test_sample_feature_column.csv', sep=',', header=0, names=None, engine = 'python')\n",
    "    \n",
    "    #itemID转数字字典\n",
    "    ItemID_set = set()\n",
    "    for val in train_sample_table['ItemID'].str.split('|'):\n",
    "        ItemID_set.update(val)\n",
    "    for val in test_sample_table['ItemID'].str.split('|'):\n",
    "        ItemID_set.update(val)\n",
    "    ItemID_set.add('<PAD>')\n",
    "    ItemID2int = {val:ii for ii, val in enumerate(ItemID_set)}\n",
    "    #itemID 转成等长数字列表，示例，其实itemID是One Hot的，不需要此操作\n",
    "    ItemID_map = {val:[ItemID2int[row] for row in val.split('|')]  \\\n",
    "                  for ii,val in enumerate(set(train_sample_table['ItemID']))}\n",
    "    test_ItemID_map = {val:[ItemID2int[row] for row in val.split('|')]  \\\n",
    "                  for ii,val in enumerate(set(test_sample_table['ItemID']))}\n",
    "    # merge train & test\n",
    "    ItemID_map.update(test_ItemID_map)\n",
    "    ItemID_map_max_len = 1\n",
    "    print(\"ItemID_map max_len:\", ItemID_map_max_len)\n",
    "    for key in ItemID_map:\n",
    "        for cnt in range(ItemID_map_max_len - len(ItemID_map[key])):\n",
    "            ItemID_map[key].insert(len(ItemID_map[key]) + cnt,itemID2int['<PAD>'])\n",
    "    train_sample_table['ItemID'] = train_sample_table['ItemID'].map(ItemID_map)\n",
    "    test_sample_table['ItemID'] = test_sample_table['ItemID'].map(ItemID_map)\n",
    "    print(\"ItemID finish\")\n",
    "    \n",
    "    \n",
    "    #User_CateIDs转数字字典\n",
    "    User_CateIDs_set = set()\n",
    "    for val in train_common_features['User_CateIDs'].str.split('|'):\n",
    "        User_CateIDs_set.update(val)\n",
    "    for val in test_common_features['User_CateIDs'].str.split('|'):\n",
    "        User_CateIDs_set.update(val)\n",
    "    User_CateIDs_set.add('<PAD>')\n",
    "    User_CateIDs2int = {val:ii for ii, val in enumerate(User_CateIDs_set)}\n",
    "    #User_CateIDs 转成等长数字列表\n",
    "    User_CateIDs_map = {val:[User_CateIDs2int[row] for row in val.split('|')]  \\\n",
    "                  for ii,val in enumerate(set(train_common_features['User_CateIDs']))}\n",
    "    test_User_CateIDs_map = {val:[User_CateIDs2int[row] for row in val.split('|')]  \\\n",
    "                  for ii,val in enumerate(set(test_common_features['User_CateIDs']))}\n",
    "    # merge train & test\n",
    "    User_CateIDs_map.update(test_User_CateIDs_map)\n",
    "    User_CateIDs_map_max_len = 100\n",
    "    print(\"User_CateIDs_map max_len:\", User_CateIDs_map_max_len)\n",
    "    for key in User_CateIDs_map:\n",
    "        for cnt in range(User_CateIDs_map_max_len - len(User_CateIDs_map[key])):\n",
    "            User_CateIDs_map[key].insert(len(User_CateIDs_map[key]) + cnt,User_CateIDs2int['<PAD>'])\n",
    "    train_common_features['User_CateIDs'] = train_common_features['User_CateIDs'].map(User_CateIDs_map)\n",
    "    test_common_features['User_CateIDs'] = test_common_features['User_CateIDs'].map(User_CateIDs_map)\n",
    "    print(\"User_CateIDs finish\")\n",
    "    \n",
    "    #User_BrandIDs转数字字典\n",
    "    User_BrandIDs_set = set()\n",
    "    for val in train_common_features['User_BrandIDs'].str.split('|'):\n",
    "        User_BrandIDs_set.update(val)\n",
    "    for val in test_common_features['User_BrandIDs'].str.split('|'):\n",
    "        User_BrandIDs_set.update(val)\n",
    "    User_BrandIDs_set.add('<PAD>')\n",
    "    User_BrandIDs2int = {val:ii for ii, val in enumerate(User_BrandIDs_set)}\n",
    "    #User_BrandIDs 转成等长数字列表\n",
    "    User_BrandIDs_map = {val:[User_BrandIDs2int[row] for row in val.split('|')]  \\\n",
    "                  for ii,val in enumerate(set(train_common_features['User_BrandIDs']))}\n",
    "    test_User_BrandIDs_map = {val:[User_BrandIDs2int[row] for row in val.split('|')]  \\\n",
    "                  for ii,val in enumerate(set(test_common_features['User_BrandIDs']))}\n",
    "    # merge train & test\n",
    "    User_BrandIDs_map.update(test_User_BrandIDs_map)\n",
    "    User_BrandIDs_map_max_len = 100\n",
    "    print(\"User_BrandIDs_map max_len:\", User_BrandIDs_map_max_len)\n",
    "    for key in User_BrandIDs_map:\n",
    "        for cnt in range(User_BrandIDs_map_max_len - len(User_BrandIDs_map[key])):\n",
    "            User_BrandIDs_map[key].insert(len(User_BrandIDs_map[key]) + cnt,User_BrandIDs2int['<PAD>'])\n",
    "    train_common_features['User_BrandIDs'] = train_common_features['User_BrandIDs'].map(User_BrandIDs_map)\n",
    "    test_common_features['User_BrandIDs'] = test_common_features['User_BrandIDs'].map(User_BrandIDs_map)\n",
    "    print(\"User_BrandIDs finish\")\n",
    "    \n",
    "    \n",
    "    #userID 转数字字典\n",
    "    UserID_set = set()\n",
    "    for val in train_common_features['UserID']:\n",
    "        UserID_set.add(val)\n",
    "    for val in test_common_features['UserID']:\n",
    "        UserID_set.add(val)\n",
    "    UserID2int = {val:ii for ii, val in enumerate(UserID_set)}\n",
    "    UserID_map_max_len = 1\n",
    "    print(\"UserID_map max_len:\", UserID_map_max_len)\n",
    "    train_common_features['UserID'] = train_common_features['UserID'].map(UserID2int)\n",
    "    test_common_features['UserID'] = test_common_features['UserID'].map(UserID2int)\n",
    "    print(\"UserID finish\")\n",
    "    \n",
    "    #User_Cluster 转数字字典\n",
    "    User_Cluster_set = set()\n",
    "    for val in train_common_features['User_Cluster']:\n",
    "        User_Cluster_set.add(val)\n",
    "    for val in test_common_features['User_Cluster']:\n",
    "        User_Cluster_set.add(val)\n",
    "    User_Cluster2int = {val:ii for ii, val in enumerate(User_Cluster_set)}\n",
    "    User_Cluster_map_max_len = 1\n",
    "    print(\"User_Cluster_map max_len:\", User_Cluster_map_max_len)\n",
    "    train_common_features['User_Cluster'] = train_common_features['User_Cluster'].map(User_Cluster2int)\n",
    "    test_common_features['User_Cluster'] = test_common_features['User_Cluster'].map(User_Cluster2int)\n",
    "    print(\"User_Cluster finish\")\n",
    "    \n",
    "    #CategoryID 转数字字典\n",
    "    CategoryID_set = set()\n",
    "    for val in train_sample_table['CategoryID']:\n",
    "        CategoryID_set.add(val)\n",
    "    for val in test_sample_table['CategoryID']:\n",
    "        CategoryID_set.add(val)\n",
    "    CategoryID2int = {val:ii for ii, val in enumerate(CategoryID_set)}\n",
    "    CategoryID_map_max_len = 1\n",
    "    print(\"CategoryID_map max_len:\", CategoryID_map_max_len)\n",
    "    train_sample_table['CategoryID'] = train_sample_table['CategoryID'].map(CategoryID2int)\n",
    "    test_sample_table['CategoryID'] = test_sample_table['CategoryID'].map(CategoryID2int)\n",
    "    print(\"CategoryID finish\")\n",
    "    \n",
    "    #ShopID 转数字字典\n",
    "    ShopID_set = set()\n",
    "    for val in train_sample_table['ShopID']:\n",
    "        ShopID_set.add(val)\n",
    "    for val in test_sample_table['ShopID']:\n",
    "        ShopID_set.add(val)\n",
    "    ShopID2int = {val:ii for ii, val in enumerate(ShopID_set)}\n",
    "    ShopID_map_max_len = 1\n",
    "    print(\"ShopID_map max_len:\", ShopID_map_max_len)\n",
    "    train_sample_table['ShopID'] = train_sample_table['ShopID'].map(ShopID2int)\n",
    "    test_sample_table['ShopID'] = test_sample_table['ShopID'].map(ShopID2int)\n",
    "    print(\"ShopID finish\")\n",
    "\n",
    "    #BrandID 转数字字典\n",
    "    BrandID_set = set()\n",
    "    for val in train_sample_table['BrandID']:\n",
    "        BrandID_set.add(val)\n",
    "    for val in test_sample_table['BrandID']:\n",
    "        BrandID_set.add(val)\n",
    "    BrandID2int = {val:ii for ii, val in enumerate(BrandID_set)}\n",
    "    BrandID_map_max_len = 1\n",
    "    print(\"BrandID_map max_len:\", UserID_map_max_len)\n",
    "    train_sample_table['BrandID'] = train_sample_table['BrandID'].map(BrandID2int)\n",
    "    test_sample_table['BrandID'] = test_sample_table['BrandID'].map(BrandID2int)\n",
    "    print(\"BrandID finish\")\n",
    "    \n",
    "    #Com_CateID 转数字字典\n",
    "    Com_CateID_set = set()\n",
    "    for val in train_sample_table['Com_CateID']:\n",
    "        Com_CateID_set.add(val)\n",
    "    for val in test_sample_table['Com_CateID']:\n",
    "        Com_CateID_set.add(val)\n",
    "    Com_CateID2int = {val:ii for ii, val in enumerate(Com_CateID_set)}\n",
    "    Com_CateID_map_max_len = 1\n",
    "    print(\"Com_CateID_map max_len:\", Com_CateID_map_max_len)\n",
    "    train_sample_table['Com_CateID'] = train_sample_table['Com_CateID'].map(Com_CateID2int)\n",
    "    test_sample_table['Com_CateID'] = test_sample_table['Com_CateID'].map(Com_CateID2int)\n",
    "    print(\"Com_CateID finish\")\n",
    "    \n",
    "    #Com_ShopID 转数字字典\n",
    "    Com_ShopID_set = set()\n",
    "    for val in train_sample_table['Com_ShopID']:\n",
    "        Com_ShopID_set.add(val)\n",
    "    for val in test_sample_table['Com_ShopID']:\n",
    "        Com_ShopID_set.add(val)\n",
    "    Com_ShopID2int = {val:ii for ii, val in enumerate(Com_ShopID_set)}\n",
    "    Com_ShopID_map_max_len = 1\n",
    "    print(\"Com_ShopID_map max_len:\", Com_ShopID_map_max_len)\n",
    "    train_sample_table['Com_ShopID'] = train_sample_table['Com_ShopID'].map(Com_ShopID2int)\n",
    "    test_sample_table['Com_ShopID'] = test_sample_table['Com_ShopID'].map(Com_ShopID2int)\n",
    "    print(\"Com_ShopID finish\")\n",
    "    \n",
    "    #Com_BrandID 转数字字典\n",
    "    Com_BrandID_set = set()\n",
    "    for val in train_sample_table['Com_BrandID']:\n",
    "        Com_BrandID_set.add(val)\n",
    "    for val in test_sample_table['Com_BrandID']:\n",
    "        Com_BrandID_set.add(val)\n",
    "    Com_BrandID2int = {val:ii for ii, val in enumerate(Com_BrandID_set)}\n",
    "    Com_BrandID_map_max_len = 1\n",
    "    print(\"Com_BrandID_map max_len:\", UserID_map_max_len)\n",
    "    train_sample_table['Com_BrandID'] = train_sample_table['Com_BrandID'].map(Com_BrandID2int)\n",
    "    test_sample_table['Com_BrandID'] = test_sample_table['Com_BrandID'].map(Com_BrandID2int)\n",
    "    print(\"Com_BrandID finish\")\n",
    "    \n",
    "    #PID 转数字字典\n",
    "    PID_set = set()\n",
    "    for val in train_sample_table['PID']:\n",
    "        PID_set.add(val)\n",
    "    for val in test_sample_table['PID']:\n",
    "        PID_set.add(val)\n",
    "    PID2int = {val:ii for ii, val in enumerate(PID_set)}\n",
    "    PID_map_max_len = 1\n",
    "    print(\"PID_map max_len:\", PID_map_max_len)\n",
    "    train_sample_table['PID'] = train_sample_table['PID'].map(PID2int)\n",
    "    test_sample_table['PID'] = test_sample_table['PID'].map(PID2int)\n",
    "    print(\"PID finish\")\n",
    "    \n",
    "    \n",
    "    #按照md5合并两个表\n",
    "    train_data = pd.merge(train_sample_table, train_common_features, on='md5',how='inner')\n",
    "    test_data = pd.merge(test_sample_table, test_common_features, on='md5',how='inner')\n",
    "\n",
    "    print(\"Sample/Common Merged\")\n",
    "    #将数据分成X和y两张表\n",
    "    feature_fields = ['UserID','ItemID','User_Cluster', 'CategoryID','ShopID',\\\n",
    "                      'BrandID','Com_CateID','Com_ShopID','Com_BrandID','PID','User_CateIDs','User_BrandIDs']\n",
    "    target_fields = ['click','buy']\n",
    "    train_features_pd, train_targets_pd = train_data[feature_fields], train_data[target_fields]\n",
    "    train_features = train_features_pd.values\n",
    "    train_targets_values = train_targets_pd.values\n",
    "    \n",
    "    test_features_pd, test_targets_pd = test_data[feature_fields], test_data[target_fields]\n",
    "    test_features = test_features_pd.values\n",
    "    test_targets_values = test_targets_pd.values\n",
    "    \n",
    "    return UserID_map_max_len, ItemID_map_max_len, User_Cluster_map_max_len, \\\n",
    "User_CateIDs_map_max_len, User_BrandIDs_map_max_len, \\\n",
    "CategoryID_map_max_len, ShopID_map_max_len, BrandID_map_max_len, Com_CateID_map_max_len,\\\n",
    "Com_ShopID_map_max_len, Com_BrandID_map_max_len, PID_map_max_len, UserID2int, ItemID2int,\\\n",
    "User_Cluster2int, User_CateIDs2int, User_BrandIDs2int,  CategoryID2int, ShopID2int, BrandID2int, Com_CateID2int, \\\n",
    "Com_ShopID2int, Com_BrandID2int, PID2int, train_features, train_targets_values, train_data, \\\n",
    "test_features, test_targets_values, test_data\n",
    "          "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 加载数据并保存到本地"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\envs\\CtrPredictDL\\lib\\site-packages\\ipykernel_launcher.py:16: FutureWarning: read_table is deprecated, use read_csv instead.\n",
      "  app.launch_new_instance()\n",
      "D:\\Anaconda3\\envs\\CtrPredictDL\\lib\\site-packages\\ipykernel_launcher.py:17: FutureWarning: read_table is deprecated, use read_csv instead.\n",
      "D:\\Anaconda3\\envs\\CtrPredictDL\\lib\\site-packages\\ipykernel_launcher.py:21: FutureWarning: read_table is deprecated, use read_csv instead.\n",
      "D:\\Anaconda3\\envs\\CtrPredictDL\\lib\\site-packages\\ipykernel_launcher.py:22: FutureWarning: read_table is deprecated, use read_csv instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ItemID_map max_len: 1\n",
      "ItemID finish\n",
      "User_CateIDs_map max_len: 100\n",
      "User_CateIDs finish\n",
      "User_BrandIDs_map max_len: 100\n",
      "User_BrandIDs finish\n",
      "UserID_map max_len: 1\n",
      "UserID finish\n",
      "User_Cluster_map max_len: 1\n",
      "User_Cluster finish\n",
      "CategoryID_map max_len: 1\n",
      "CategoryID finish\n",
      "ShopID_map max_len: 1\n",
      "ShopID finish\n",
      "BrandID_map max_len: 1\n",
      "BrandID finish\n",
      "Com_CateID_map max_len: 1\n",
      "Com_CateID finish\n",
      "Com_ShopID_map max_len: 1\n",
      "Com_ShopID finish\n",
      "Com_BrandID_map max_len: 1\n",
      "Com_BrandID finish\n",
      "PID_map max_len: 1\n",
      "PID finish\n",
      "Sample/Common Merged\n",
      "0\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "UserID_map_max_len, ItemID_map_max_len, User_Cluster_map_max_len, \\\n",
    "User_CateIDs_map_max_len, User_BrandIDs_map_max_len, \\\n",
    "CategoryID_map_max_len, ShopID_map_max_len, BrandID_map_max_len, Com_CateID_map_max_len,\\\n",
    "Com_ShopID_map_max_len, Com_BrandID_map_max_len, PID_map_max_len, UserID2int, ItemID2int,\\\n",
    "User_Cluster2int, User_CateIDs2int, User_BrandIDs2int,  CategoryID2int, ShopID2int, BrandID2int, Com_CateID2int, \\\n",
    "Com_ShopID2int, Com_BrandID2int, PID2int, train_features, train_targets_values, train_data, \\\n",
    "test_features, test_targets_values, test_data = load_ESMM_Train_and_Test_Data()\n",
    "print(0)\n",
    "pickle.dump((UserID_map_max_len, ItemID_map_max_len, User_Cluster_map_max_len, \\\n",
    "User_CateIDs_map_max_len, User_BrandIDs_map_max_len, \\\n",
    "CategoryID_map_max_len, ShopID_map_max_len, BrandID_map_max_len, Com_CateID_map_max_len,\\\n",
    "Com_ShopID_map_max_len, Com_BrandID_map_max_len, PID_map_max_len, UserID2int, ItemID2int,\\\n",
    "User_Cluster2int, User_CateIDs2int, User_BrandIDs2int,  CategoryID2int, ShopID2int, BrandID2int, Com_CateID2int, \\\n",
    "Com_ShopID2int, Com_BrandID2int, PID2int, train_features, train_targets_values, train_data, \\\n",
    "test_features, test_targets_values, test_data), open('./save/preprocess.p', 'wb'))\n",
    "print(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "113196"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "User_CateIDs2int['<PAD>']\n",
    "User_BrandIDs2int['<PAD>']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[108753,\n",
       " 10623,\n",
       " 312917,\n",
       " 143593,\n",
       " 118693,\n",
       " 331066,\n",
       " 131233,\n",
       " 311586,\n",
       " 124598,\n",
       " 179293,\n",
       " 337903,\n",
       " 116403,\n",
       " 332109,\n",
       " 21648,\n",
       " 9900,\n",
       " 122982,\n",
       " 200862,\n",
       " 147628,\n",
       " 188472,\n",
       " 213053,\n",
       " 127222,\n",
       " 142608,\n",
       " 146629,\n",
       " 276837,\n",
       " 206045,\n",
       " 302819,\n",
       " 208470,\n",
       " 98161,\n",
       " 173194,\n",
       " 283812,\n",
       " 114523,\n",
       " 273774,\n",
       " 227134,\n",
       " 180071,\n",
       " 174793,\n",
       " 255633,\n",
       " 282992,\n",
       " 146888,\n",
       " 156502,\n",
       " 61695,\n",
       " 172446,\n",
       " 294444,\n",
       " 130031,\n",
       " 156333,\n",
       " 267790,\n",
       " 300394,\n",
       " 339069,\n",
       " 285401,\n",
       " 106732,\n",
       " 43150,\n",
       " 154804,\n",
       " 124082,\n",
       " 296429,\n",
       " 65292,\n",
       " 256278,\n",
       " 269047,\n",
       " 109540,\n",
       " 239975,\n",
       " 262898,\n",
       " 50477,\n",
       " 126067,\n",
       " 289186,\n",
       " 242884,\n",
       " 86892,\n",
       " 63350,\n",
       " 246526,\n",
       " 208012,\n",
       " 280682,\n",
       " 59886,\n",
       " 311111,\n",
       " 201798,\n",
       " 126337,\n",
       " 152154,\n",
       " 169131,\n",
       " 177299,\n",
       " 104347,\n",
       " 91498,\n",
       " 24601,\n",
       " 211893,\n",
       " 336948,\n",
       " 213795,\n",
       " 158648,\n",
       " 123367,\n",
       " 36314,\n",
       " 274290,\n",
       " 177995,\n",
       " 168772,\n",
       " 232761,\n",
       " 309741,\n",
       " 17415,\n",
       " 253152,\n",
       " 115001,\n",
       " 85754,\n",
       " 307192,\n",
       " 258323,\n",
       " 234323,\n",
       " 115877,\n",
       " 24735,\n",
       " 64374,\n",
       " 99095]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(test_features[0:1,0:100])\n",
    "\n",
    "#print(train_features[0:1,0:100])#\n",
    "\n",
    "#train_features.take(11,1)[1000]#取出第11列所有行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(170164, 2)\n",
      "(1085721, 2)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "test_targets_values[0:10]\n",
    "print(train_targets_values.shape)\n",
    "print(test_targets_values.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 3645.  5369.  7220.  5699.  5588.  4536.  5566.  8498. 10107. 10221.\n",
      "   8629.  7283.  4577.  6489.  4528.  1585.  8725.  3826.  8050.  8007.\n",
      "   1397. 11684.  6325.  5997. 11019.  1975.  9288.  4078.  3786.  2070.\n",
      "   7824.  2384.  1865.  8696.   620.  2529.   491.    77.  2798.  1905.\n",
      "   4764. 11046.  6766.    42. 11037.  7541.  1654.  2258.  2678.   639.\n",
      "   8759.  1900.  8758.  8734.   292.  3027.  4780.  5586.  3261.  1162.\n",
      "   7574. 11114.  7066.  2653.  3152.  9696.  2666.  3376. 11537.  7008.\n",
      "  10994.   781.  6115.  8891. 11221.  1296.  5444.   616.  1170.  7559.\n",
      "   5762.  1441.  8271.  3634. 10664.  7933.  6425.  2383.  1579.  6851.\n",
      "   9697.  6873.  5236.  1898.  6432.  8477. 10681.  4443.  9617.   196.]\n",
      " [ 3645.  5369.  7220.  5699.  5588.  4536.  5566.  8498. 10107. 10221.\n",
      "   8629.  7283.  4577.  6489.  4528.  1585.  8725.  3826.  8050.  8007.\n",
      "   1397. 11684.  6325.  5997. 11019.  1975.  9288.  4078.  3786.  2070.\n",
      "   7824.  2384.  1865.  8696.   620.  2529.   491.    77.  2798.  1905.\n",
      "   4764. 11046.  6766.    42. 11037.  7541.  1654.  2258.  2678.   639.\n",
      "   8759.  1900.  8758.  8734.   292.  3027.  4780.  5586.  3261.  1162.\n",
      "   7574. 11114.  7066.  2653.  3152.  9696.  2666.  3376. 11537.  7008.\n",
      "  10994.   781.  6115.  8891. 11221.  1296.  5444.   616.  1170.  7559.\n",
      "   5762.  1441.  8271.  3634. 10664.  7933.  6425.  2383.  1579.  6851.\n",
      "   9697.  6873.  5236.  1898.  6432.  8477. 10681.  4443.  9617.   196.]]\n"
     ]
    }
   ],
   "source": [
    "user_cateids = np.zeros([2, 100])\n",
    "for i in range(2):\n",
    "    user_cateids[i] = train_features.take(10,1)[i]\n",
    "print(user_cateids)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 从本地读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n"
     ]
    }
   ],
   "source": [
    "UserID_map_max_len, ItemID_map_max_len, User_Cluster_map_max_len, \\\n",
    "User_CateIDs_map_max_len, User_BrandIDs_map_max_len, \\\n",
    "CategoryID_map_max_len, ShopID_map_max_len, BrandID_map_max_len, Com_CateID_map_max_len,\\\n",
    "Com_ShopID_map_max_len, Com_BrandID_map_max_len, PID_map_max_len, UserID2int, ItemID2int,\\\n",
    "User_Cluster2int, User_CateIDs2int, User_BrandIDs2int,  CategoryID2int, ShopID2int, BrandID2int, Com_CateID2int, \\\n",
    "Com_ShopID2int, Com_BrandID2int, PID2int, train_features, train_targets_values, train_data, \\\n",
    "test_features, test_targets_values, test_data = pickle.load(open('./save/preprocess.p', mode='rb'))\n",
    "print(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型设计"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 模型架构\n",
    "\n",
    "<img src=\"assets/esmm.png\"/>\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Embedding Lookup 示例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "---------------b--------------------\n",
      "[[0.47137558]]\n",
      "---------------a--------------------\n",
      "[0.47137558]\n",
      "----------------c-------------------\n",
      "[[0.3424981 ]\n",
      " [0.47137558]\n",
      " [0.26106545]\n",
      " [0.90513888]\n",
      " [0.89251512]\n",
      " [0.73945183]\n",
      " [0.3792907 ]\n",
      " [0.74885523]\n",
      " [0.84211554]\n",
      " [0.48852053]]\n"
     ]
    }
   ],
   "source": [
    "import tensorflow as tf;\n",
    "import numpy as np;\n",
    " \n",
    "c = np.random.random([10,1])\n",
    "b = tf.nn.embedding_lookup(c, [1])\n",
    "a = tf.nn.embedding_lookup(c, 1)\n",
    "with tf.Session() as sess:\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    print(\"---------------b--------------------\")\n",
    "    print(sess.run(b))\n",
    "    print(\"---------------a--------------------\")\n",
    "    print(sess.run(a))\n",
    "    print(\"----------------c-------------------\")\n",
    "    print(c)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Tensorflow slice 示例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(3, 2)\n",
      "(3, 1)\n",
      "--------------t---------------------\n",
      "[[  1 100]\n",
      " [  2  99]\n",
      " [  3  98]]\n",
      "--------------t1---------------------\n",
      "[[100]\n",
      " [ 99]\n",
      " [ 98]]\n",
      "---------------t2--------------------\n",
      "[[-99]\n",
      " [-98]\n",
      " [-97]]\n",
      "----------------t3-------------------\n",
      "[[100 -99]\n",
      " [ 99 -98]\n",
      " [ 98 -97]]\n"
     ]
    }
   ],
   "source": [
    "t = tf.constant([[1,100],[2,99],[3,98]])\n",
    "t1 = tf.slice(t, [0,1], [-1, 1])  # [[100, 99, 98]]\n",
    "t2 =  1-t1 # [[-99, -98, -97]]\n",
    "t3 = tf.concat([t1,t2],axis=1)\n",
    "print(t.shape)\n",
    "print(t1.shape)\n",
    "with tf.Session() as sess:\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    print(\"--------------t---------------------\")\n",
    "    print(sess.run(t))\n",
    "    print(\"--------------t1---------------------\")\n",
    "    print(sess.run(t1))\n",
    "    print(\"---------------t2--------------------\")\n",
    "    print(sess.run(t2))\n",
    "    print(\"----------------t3-------------------\")\n",
    "    print(sess.run(t3))\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 训练测试集Split 示例"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "--------X----------\n",
      "[[0 1]\n",
      " [2 3]\n",
      " [4 5]\n",
      " [6 7]\n",
      " [8 9]]\n",
      "--------X,Y----------\n",
      "[[0 1]\n",
      " [2 3]\n",
      " [4 5]\n",
      " [6 7]\n",
      " [8 9]] range(0, 5)\n",
      "--------target,Y----------\n",
      "[0, 1, 2, 3, 4]\n",
      "--------TEST split----------\n",
      "--------X_train----------\n",
      "[[4 5]\n",
      " [0 1]\n",
      " [6 7]]\n",
      "--------y_train----------\n",
      "[2, 0, 3]\n",
      "--------X_test----------\n",
      "[[2 3]\n",
      " [8 9]]\n",
      "--------y_test----------\n",
      "[1, 4]\n"
     ]
    }
   ],
   "source": [
    "## 计算AUC\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "X, y = np.arange(10).reshape((5, 2)), range(5)\n",
    "print (\"--------X----------\")\n",
    "print (X)\n",
    "print (\"--------X,Y----------\")\n",
    "print(X,y)\n",
    "\n",
    "print (\"--------target,Y----------\")\n",
    "print(list(y))\n",
    "\n",
    "print (\"--------TEST split----------\")\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    X, y, test_size=0.33, random_state=42)\n",
    "print (\"--------X_train----------\")\n",
    "print(X_train)\n",
    "print (\"--------y_train----------\")\n",
    "print(y_train)\n",
    "# print(X)\n",
    "# print(y)\n",
    "print (\"--------X_test----------\")\n",
    "print(X_test)\n",
    "print (\"--------y_test----------\")\n",
    "print(y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### AUC计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 整个Batch AUC计算，适合CTR、CTCVR\n",
    "def calc_auc(raw_arr):\n",
    "    \n",
    "    # sort by pred value, from small to big\n",
    "    arr = sorted(raw_arr, key=lambda d:d[2])\n",
    "\n",
    "    auc = 0.0\n",
    "    fp1, tp1, fp2, tp2 = 0.0, 0.0, 0.0, 0.0\n",
    "    for record in arr:\n",
    "        fp2 += record[0] # noclick\n",
    "        tp2 += record[1] # click\n",
    "        auc += (fp2 - fp1) * (tp2 + tp1)\n",
    "        fp1, tp1 = fp2, tp2\n",
    "\n",
    "    # if all nonclick or click, disgard\n",
    "    threshold = len(arr) - 1e-3\n",
    "    if tp2 > threshold or fp2 > threshold:\n",
    "        return -0.5\n",
    "\n",
    "    if tp2 * fp2 > 0.0:  # normal auc\n",
    "        return (1.0 - auc / (2.0 * tp2 * fp2))\n",
    "    else:\n",
    "        return None\n",
    "\n",
    "### AUC 带Filter计算（CVR AUC只需要计算Click=1的样本子集）\n",
    "def calc_auc_with_filter(raw_arr, filter_arr):\n",
    "    ## get filter array row indexes\n",
    "    filter_index = np.nonzero(filter_arr)[0].tolist()\n",
    "    input_arr = [raw_arr[index] for index in filter_index]\n",
    "    auc_val = calc_auc(input_arr)\n",
    "    return auc_val\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 构建神经网络"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 定义输入\n",
    "定义输入的占位符"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_inputs():\n",
    "    UserID = tf.placeholder(tf.int32, [None, 1], name=\"UserID\")\n",
    "    ItemID = tf.placeholder(tf.int32, [None, 1], name=\"ItemID\")\n",
    "    User_Cluster = tf.placeholder(tf.int32, [None, 1], name=\"User_Cluster\")\n",
    "    User_CateIDs = tf.placeholder(tf.int32, [None, 100], name=\"User_CateIDs\")\n",
    "    User_BrandIDs = tf.placeholder(tf.int32, [None, 100], name=\"User_BrandIDs\")\n",
    "    \n",
    "    CategoryID = tf.placeholder(tf.int32, [None, 1], name=\"CategoryID\")\n",
    "    ShopID = tf.placeholder(tf.int32, [None, 1], name=\"ShopID\")\n",
    "    BrandID = tf.placeholder(tf.int32, [None, 1], name=\"BrandID\")\n",
    "    Com_CateID = tf.placeholder(tf.int32, [None, 1], name=\"Com_CateID\")\n",
    "    Com_ShopID = tf.placeholder(tf.int32, [None, 1], name=\"Com_ShopID\")\n",
    "    Com_BrandID = tf.placeholder(tf.int32, [None, 1], name=\"Com_BrandID\")\n",
    "    PID = tf.placeholder(tf.int32, [None, 1], name=\"PID\")\n",
    "    \n",
    "    targets = tf.placeholder(tf.float32, [None, 2], name=\"targets\")\n",
    "    LearningRate = tf.placeholder(tf.float32, name = \"LearningRate\")\n",
    "    return  UserID, ItemID, User_Cluster, CategoryID, ShopID, BrandID, Com_CateID,\\\n",
    "            Com_ShopID, Com_BrandID, PID, User_CateIDs, User_BrandIDs, targets, LearningRate"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 特征MaxID计算\n",
    "方便Embedding初始化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "253199 492667 98 11943 347758 6346 229866 91556 5280 95488 44385 3\n"
     ]
    }
   ],
   "source": [
    "#嵌入矩阵的维度\n",
    "embed_dim = 12\n",
    "#userID个数\n",
    "UserID_max = max(UserID2int.values()) + 1 \n",
    "#itemID个数\n",
    "ItemID_max = max(ItemID2int.values()) + 1 \n",
    "User_Cluster_max = max(User_Cluster2int.values()) + 1 \n",
    "User_CateIDs_max = max(User_CateIDs2int.values()) + 1 \n",
    "User_BrandIDs_max = max(User_BrandIDs2int.values()) + 1 \n",
    "\n",
    "CategoryID_max = max(CategoryID2int.values()) + 1 \n",
    "ShopID_max = max(ShopID2int.values()) + 1 \n",
    "BrandID_max = max(BrandID2int.values()) + 1 \n",
    "Com_CateID_max = max(Com_CateID2int.values()) + 1 \n",
    "Com_ShopID_max = max(Com_ShopID2int.values()) + 1 \n",
    "Com_BrandID_max = max(Com_BrandID2int.values()) + 1 \n",
    "PID_max = max(PID2int.values()) + 1 \n",
    "\n",
    "#变长特征pooling方式\n",
    "combiner = \"sum\"\n",
    "\n",
    "print(UserID_max, ItemID_max, User_Cluster_max, User_CateIDs_max, User_BrandIDs_max, CategoryID_max, ShopID_max, BrandID_max, \\\n",
    "      Com_CateID_max, Com_ShopID_max, Com_BrandID_max, PID_max)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 对所有输入做Embedding"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "def define_embedding_layers(UserID, ItemID, User_Cluster, CategoryID, ShopID, BrandID, Com_CateID,\\\n",
    "            Com_ShopID, Com_BrandID, PID, User_CateIDs, User_BrandIDs):\n",
    "\n",
    "    UserID_embed_matrix = tf.Variable(tf.random_normal([UserID_max, embed_dim], 0, 0.001))\n",
    "    UserID_embed_layer = tf.nn.embedding_lookup(UserID_embed_matrix, UserID)\n",
    "    if combiner == \"sum\":\n",
    "        UserID_embed_layer = tf.reduce_sum(UserID_embed_layer, axis=1, keep_dims=True)\n",
    "        \n",
    "    ItemID_embed_matrix = tf.Variable(tf.random_uniform([ItemID_max, embed_dim], 0, 0.001))\n",
    "    ItemID_embed_layer = tf.nn.embedding_lookup(ItemID_embed_matrix, ItemID)\n",
    "    if combiner == \"sum\":\n",
    "        ItemID_embed_layer = tf.reduce_sum(ItemID_embed_layer, axis=1, keep_dims=True)\n",
    "\n",
    "    User_Cluster_embed_matrix = tf.Variable(tf.random_uniform([User_Cluster_max, embed_dim], 0, 0.001))\n",
    "    User_Cluster_embed_layer = tf.nn.embedding_lookup(User_Cluster_embed_matrix, User_Cluster)\n",
    "    if combiner == \"sum\":\n",
    "        User_Cluster_embed_layer = tf.reduce_sum(User_Cluster_embed_layer, axis=1, keep_dims=True)\n",
    "        \n",
    "    User_CateIDs_embed_matrix = tf.Variable(tf.random_uniform([User_CateIDs_max, embed_dim], 0, 0.001))\n",
    "    User_CateIDs_embed_layer = tf.nn.embedding_lookup(User_CateIDs_embed_matrix, User_CateIDs)\n",
    "    if combiner == \"sum\":\n",
    "        User_CateIDs_embed_layer = tf.reduce_sum(User_CateIDs_embed_layer, axis=1, keep_dims=True)\n",
    "        \n",
    "    User_BrandIDs_embed_matrix = tf.Variable(tf.random_uniform([User_BrandIDs_max, embed_dim], 0, 0.001))\n",
    "    User_BrandIDs_embed_layer = tf.nn.embedding_lookup(User_BrandIDs_embed_matrix, User_BrandIDs)\n",
    "    if combiner == \"sum\":\n",
    "        User_BrandIDs_embed_layer = tf.reduce_sum(User_BrandIDs_embed_layer, axis=1, keep_dims=True)\n",
    "        \n",
    "    CategoryID_embed_matrix = tf.Variable(tf.random_uniform([CategoryID_max, embed_dim], 0, 0.001))\n",
    "    CategoryID_embed_layer = tf.nn.embedding_lookup(CategoryID_embed_matrix, CategoryID)\n",
    "    if combiner == \"sum\":\n",
    "        CategoryID_embed_layer = tf.reduce_sum(CategoryID_embed_layer, axis=1, keep_dims=True)\n",
    "    \n",
    "    ShopID_embed_matrix = tf.Variable(tf.random_uniform([ShopID_max, embed_dim], 0, 0.001))\n",
    "    ShopID_embed_layer = tf.nn.embedding_lookup(ShopID_embed_matrix, ShopID)\n",
    "    if combiner == \"sum\":\n",
    "        ShopID_embed_layer = tf.reduce_sum(ShopID_embed_layer, axis=1, keep_dims=True)\n",
    "\n",
    "    BrandID_embed_matrix = tf.Variable(tf.random_uniform([BrandID_max, embed_dim], 0, 0.001))\n",
    "    BrandID_embed_layer = tf.nn.embedding_lookup(BrandID_embed_matrix, BrandID)\n",
    "    if combiner == \"sum\":\n",
    "        BrandID_embed_layer = tf.reduce_sum(BrandID_embed_layer, axis=1, keep_dims=True)\n",
    "\n",
    "    Com_CateID_embed_matrix = tf.Variable(tf.random_uniform([Com_CateID_max, embed_dim], 0, 0.001))\n",
    "    Com_CateID_embed_layer = tf.nn.embedding_lookup(Com_CateID_embed_matrix, Com_CateID)\n",
    "    if combiner == \"sum\":\n",
    "        Com_CateID_embed_layer = tf.reduce_sum(Com_CateID_embed_layer, axis=1, keep_dims=True)\n",
    "\n",
    "    Com_ShopID_embed_matrix = tf.Variable(tf.random_uniform([Com_ShopID_max, embed_dim], 0, 0.001))\n",
    "    Com_ShopID_embed_layer = tf.nn.embedding_lookup(Com_ShopID_embed_matrix, Com_ShopID)\n",
    "    if combiner == \"sum\":\n",
    "        Com_ShopID_embed_layer = tf.reduce_sum(Com_ShopID_embed_layer, axis=1, keep_dims=True)\n",
    "\n",
    "    Com_BrandID_embed_matrix = tf.Variable(tf.random_uniform([Com_BrandID_max, embed_dim], 0, 0.001))\n",
    "    Com_BrandID_embed_layer = tf.nn.embedding_lookup(Com_BrandID_embed_matrix, Com_BrandID)\n",
    "    if combiner == \"sum\":\n",
    "        Com_BrandID_embed_layer = tf.reduce_sum(Com_BrandID_embed_layer, axis=1, keep_dims=True)\n",
    "\n",
    "\n",
    "    PID_embed_matrix = tf.Variable(tf.random_uniform([PID_max, embed_dim], 0, 0.001))\n",
    "    PID_embed_layer = tf.nn.embedding_lookup(PID_embed_matrix, PID)\n",
    "    if combiner == \"sum\":\n",
    "        PID_embed_layer = tf.reduce_sum(PID_embed_layer, axis=1, keep_dims=True)\n",
    "    '''    \n",
    "    esmm_embedding_layer = tf.concat([UserID_embed_layer, ItemID_embed_layer, User_Cluster_embed_layer,\\\n",
    "                                     CategoryID_embed_layer, ShopID_embed_layer, BrandID_embed_layer,\\\n",
    "                                     Com_CateID_embed_layer, Com_ShopID_embed_layer, Com_BrandID_embed_layer,\\\n",
    "                                      PID_embed_layer,], 2)\n",
    "    esmm_embedding_layer = tf.reshape(esmm_embedding_layer, [-1, embed_dim * 10])\n",
    "    '''\n",
    "    '''\n",
    "    # 数据量较小，选择UID特征和其他一些低维度特征\n",
    "    esmm_embedding_layer = tf.concat([UserID_embed_layer,User_Cluster_embed_layer,\\\n",
    "                                     CategoryID_embed_layer,\\\n",
    "                                     Com_CateID_embed_layer,\\\n",
    "                                      PID_embed_layer,], 2)\n",
    "    esmm_embedding_layer = tf.reshape(esmm_embedding_layer, [-1, embed_dim * 5])\n",
    "    '''\n",
    "    # 数据量较小，选择User Cluster and 其他一些较低低维度特征\n",
    "    esmm_embedding_layer = tf.concat([User_CateIDs_embed_layer,\\\n",
    "                                      User_BrandIDs_embed_layer,\\\n",
    "                                      ItemID_embed_layer,\\\n",
    "                                     CategoryID_embed_layer,\\\n",
    "                                     Com_CateID_embed_layer,\\\n",
    "                                      PID_embed_layer,], 2)\n",
    "    esmm_embedding_layer = tf.reshape(esmm_embedding_layer, [-1, embed_dim * 6])\n",
    "    return esmm_embedding_layer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def define_ctr_layer(esmm_embedding_layer):\n",
    "    ctr_layer_1 = tf.layers.dense(esmm_embedding_layer, 200, activation=tf.nn.relu)\n",
    "    ctr_layer_2 = tf.layers.dense(ctr_layer_1, 80, activation=tf.nn.relu)\n",
    "    ctr_layer_3 = tf.layers.dense(ctr_layer_2, 2) # [nonclick, click]\n",
    "    ctr_prob = tf.nn.softmax(ctr_layer_3) + 0.00000001\n",
    "    return ctr_prob"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def define_cvr_layer(esmm_embedding_layer):\n",
    "    cvr_layer_1 = tf.layers.dense(esmm_embedding_layer, 200, activation=tf.nn.relu)\n",
    "    cvr_layer_2 = tf.layers.dense(cvr_layer_1, 80, activation=tf.nn.relu)\n",
    "    cvr_layer_3 = tf.layers.dense(cvr_layer_2, 2) # [nonbuy, buy]\n",
    "    cvr_prob = tf.nn.softmax(cvr_layer_3) + 0.00000001\n",
    "    return cvr_prob"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#  由于demo数据过小，购买过于稀疏，设计cvr和ctr倒数第二层以前完全共享\n",
    "def define_ctr_cvr_layer(esmm_embedding_layer):\n",
    "    layer_1 = tf.layers.dense(esmm_embedding_layer, 128 , activation=tf.nn.relu)\n",
    "    layer_2 = tf.layers.dense(layer_1, 16, activation=tf.nn.relu)\n",
    "    layer_3 = tf.layers.dense(layer_2, 2)\n",
    "    ctr_prob = tf.nn.softmax(layer_3) + 0.00000001\n",
    "    layer_4 = tf.layers.dense(layer_2, 2)\n",
    "    cvr_prob = tf.nn.softmax(layer_4) + 0.00000001\n",
    "    return ctr_prob, cvr_prob"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 构建计算图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "tf.reset_default_graph()\n",
    "train_graph = tf.Graph()\n",
    "with train_graph.as_default():\n",
    "    #获取输入占位符\n",
    "    UserID, ItemID, User_Cluster, CategoryID, ShopID, BrandID, Com_CateID,\\\n",
    "            Com_ShopID, Com_BrandID, PID, User_CateIDs, User_BrandIDs, targets, lr = get_inputs()\n",
    "\n",
    "    # Embedding Input Layer\n",
    "    esmm_embedding_layer = define_embedding_layers(UserID, ItemID, User_Cluster, CategoryID, ShopID, BrandID, Com_CateID,\\\n",
    "            Com_ShopID, Com_BrandID, PID, User_CateIDs, User_BrandIDs)\n",
    "\n",
    "    # CTR Network\n",
    "    #ctr_prob = define_ctr_layer(esmm_embedding_layer)\n",
    "    \n",
    "    # CVR Network\n",
    "    #cvr_prob = define_cvr_layer(esmm_embedding_layer)\n",
    "    \n",
    "    # 由于demo数据过小，购买过于稀疏，设计cvr和ctr倒数第二层以前完全共享\n",
    "    ctr_prob, cvr_prob = define_ctr_cvr_layer(esmm_embedding_layer)\n",
    "    \n",
    "    with tf.name_scope(\"loss\"):\n",
    "        \n",
    "        ctr_prob_one = tf.slice(ctr_prob, [0,1], [-1, 1]) # [batch_size , 1]\n",
    "        cvr_prob_one = tf.slice(cvr_prob, [0,1], [-1, 1]) # [batchsize, 1 ]\n",
    "        \n",
    "        ctcvr_prob_one = ctr_prob_one * cvr_prob_one # [ctr*cvr]\n",
    "        ctcvr_prob = tf.concat([1 - ctcvr_prob_one, ctcvr_prob_one], axis=1)\n",
    "        \n",
    "        ctr_label =  tf.slice(targets, [0,0], [-1, 1]) # target: [click, buy]\n",
    "        ctr_label = tf.concat([1 - ctr_label, ctr_label], axis=1) # [1-click, click]\n",
    "\n",
    "        cvr_label = tf.slice(targets, [0,1], [-1, 1])\n",
    "        ctcvr_label = tf.concat([1 - cvr_label, cvr_label], axis=1)\n",
    "        \n",
    "        # 单列，判断Click是否=1\n",
    "        ctr_clk = tf.slice(targets, [0,0], [-1, 1])\n",
    "        ctr_clk_dup = tf.concat([ctr_clk, ctr_clk], axis=1)\n",
    "        \n",
    "        # clicked subset CVR loss\n",
    "        cvr_loss = - tf.multiply(tf.log(cvr_prob) * ctcvr_label, ctr_clk_dup)\n",
    "        # batch CTR loss\n",
    "        ctr_loss = - tf.log(ctr_prob) * ctr_label # -y*log(p)-(1-y)*log(1-p)\n",
    "        # batch CTCVR loss\n",
    "        ctcvr_loss = - tf.log(ctcvr_prob) * ctcvr_label\n",
    "        \n",
    "        #loss = tf.reduce_mean(ctr_loss + ctcvr_loss + cvr_loss)\n",
    "        #loss = tf.reduce_mean(ctr_loss + ctcvr_loss)\n",
    "        #loss = tf.reduce_mean(ctr_loss + cvr_loss)\n",
    "        loss = tf.reduce_mean(cvr_loss)\n",
    "        ctr_loss = tf.reduce_mean(ctr_loss)\n",
    "        cvr_loss = tf.reduce_mean(cvr_loss)\n",
    "        ctcvr_loss = tf.reduce_mean(ctcvr_loss)\n",
    "\n",
    "    # 优化损失 \n",
    "    #train_op = tf.train.AdamOptimizer(lr).minimize(loss)  #cost\n",
    "    global_step = tf.Variable(0, name=\"global_step\", trainable=False)\n",
    "    optimizer = tf.train.AdamOptimizer(lr)\n",
    "    gradients = optimizer.compute_gradients(loss)  #cost\n",
    "    train_op = optimizer.apply_gradients(gradients, global_step=global_step)\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练网络"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 取得batch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_batches(Xs, ys, batch_size):\n",
    "    for start in range(0, len(Xs), batch_size):\n",
    "        end = min(start + batch_size, len(Xs))\n",
    "        yield Xs[start:end], ys[start:end]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 超参"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Number of Epochs\n",
    "num_epochs = 1\n",
    "# Batch Size\n",
    "batch_size = 10000\n",
    "\n",
    "# Test Batch Size\n",
    "test_batch_size = 10000\n",
    "\n",
    "# Learning Rate\n",
    "learning_rate = 0.01\n",
    "# Show stats for every n number of batches\n",
    "show_every_n_batches = 10\n",
    "show_test_every_n_batches = 10\n",
    "\n",
    "save_dir = './save'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 训练开始"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'train_graph' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-5-e6efdb321dce>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m     12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     13\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 14\u001b[1;33m \u001b[1;32mwith\u001b[0m \u001b[0mtf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mSession\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgraph\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mtrain_graph\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0msess\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m     15\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m     16\u001b[0m     \u001b[1;31m#搜集数据给tensorBoard用\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mNameError\u001b[0m: name 'train_graph' is not defined"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "%config InlineBackend.figure_format = 'retina'\n",
    "import matplotlib.pyplot as plt\n",
    "import time\n",
    "import datetime\n",
    "\n",
    "losses = {'train':[], 'test':[]}\n",
    "\n",
    "ctr_auc_stat = {'train':[], 'test':[]}\n",
    "cvr_auc_stat = {'train':[], 'test':[]}\n",
    "ctcvr_auc_stat = {'train':[], 'test':[]}\n",
    "\n",
    "\n",
    "with tf.Session(graph=train_graph) as sess:\n",
    "    \n",
    "    #搜集数据给tensorBoard用\n",
    "    # Keep track of gradient values and sparsity\n",
    "    grad_summaries = []\n",
    "    for g, v in gradients:\n",
    "        if g is not None:\n",
    "            grad_hist_summary = tf.summary.histogram(\"{}/grad/hist\".format(v.name.replace(':', '_')), g)\n",
    "            sparsity_summary = tf.summary.scalar(\"{}/grad/sparsity\".format(v.name.replace(':', '_')), tf.nn.zero_fraction(g))\n",
    "            grad_summaries.append(grad_hist_summary)\n",
    "            grad_summaries.append(sparsity_summary)\n",
    "    grad_summaries_merged = tf.summary.merge(grad_summaries)\n",
    "        \n",
    "    # Output directory for models and summaries\n",
    "    timestamp = str(int(time.time()))\n",
    "    out_dir = os.path.abspath(os.path.join(os.path.curdir, \"runs\", timestamp))\n",
    "    print(\"Writing to {}\\n\".format(out_dir))\n",
    "     \n",
    "    # Summaries for loss and accuracy\n",
    "    loss_summary = tf.summary.scalar(\"loss\", loss)\n",
    "\n",
    "    # Train Summaries\n",
    "    train_summary_op = tf.summary.merge([loss_summary, grad_summaries_merged])\n",
    "    train_summary_dir = os.path.join(out_dir, \"summaries\", \"train\")\n",
    "    train_summary_writer = tf.summary.FileWriter(train_summary_dir, sess.graph)\n",
    "\n",
    "    # Inference summaries\n",
    "    inference_summary_op = tf.summary.merge([loss_summary])\n",
    "    inference_summary_dir = os.path.join(out_dir, \"summaries\", \"inference\")\n",
    "    inference_summary_writer = tf.summary.FileWriter(inference_summary_dir, sess.graph)\n",
    "\n",
    "    sess.run(tf.global_variables_initializer())\n",
    "    saver = tf.train.Saver()\n",
    "    \n",
    "    #将数据集分成训练集和测试集，随机种子固定，用训练集拆分出来训练和测试，当天随机切分\n",
    "    #train_X,test_X, train_y, test_y = train_test_split(features,  \n",
    "    #                                                    targets_values,  \n",
    "    #                                                   test_size = 0.2,  \n",
    "    #                                                   random_state = 0)  \n",
    "    \n",
    "    # 训练集和测试集用两天的数据，前一天训练，后一天测试\n",
    "    train_X, train_y = train_features, train_targets_values \n",
    "    test_X, test_y = test_features, test_targets_values \n",
    "        \n",
    "\n",
    "    for epoch_i in range(num_epochs):\n",
    "            \n",
    "        train_ctr_auc_arr = []\n",
    "        train_cvr_auc_arr = []\n",
    "        train_ctcvr_auc_arr = []\n",
    "        \n",
    "        test_ctr_auc_arr = []\n",
    "        test_cvr_auc_arr = []\n",
    "        test_ctcvr_auc_arr = []\n",
    "        \n",
    "        train_batches = get_batches(train_X, train_y, batch_size)\n",
    "        test_batches = get_batches(test_X, test_y, test_batch_size)\n",
    "    \n",
    "        \n",
    "        #训练的迭代，保存训练损失\n",
    "        for batch_i in range(len(train_X) // batch_size):\n",
    "            x, y = next(train_batches)\n",
    "\n",
    "            #categories = np.zeros([batch_size, 18])\n",
    "            #for i in range(batch_size):\n",
    "                #categories[i] = x.take(6,1)[i]\n",
    "            item_id = np.zeros([batch_size, 1])\n",
    "            for i in range(batch_size):\n",
    "                item_id[i] = x.take(1,1)[i]\n",
    "                \n",
    "            #User_CateIDs, User_BrandIDs\n",
    "            user_cateids = np.zeros([batch_size, 100])\n",
    "            for i in range(batch_size):\n",
    "                user_cateids[i] = x.take(10,1)[i]\n",
    "            user_brandids = np.zeros([batch_size, 100])\n",
    "            for i in range(batch_size):\n",
    "                user_brandids[i] = x.take(11,1)[i]\n",
    "            \n",
    "            feed = {\n",
    "                UserID : np.reshape(x.take(0,1), [batch_size, 1]),\n",
    "                ItemID: item_id,\n",
    "                User_Cluster : np.reshape(x.take(2,1), [batch_size, 1]),\n",
    "                CategoryID : np.reshape(x.take(3,1), [batch_size, 1]),\n",
    "                ShopID : np.reshape(x.take(4,1), [batch_size, 1]),\n",
    "                BrandID : np.reshape(x.take(5,1), [batch_size, 1]),\n",
    "                Com_CateID : np.reshape(x.take(6,1), [batch_size, 1]),\n",
    "                Com_ShopID : np.reshape(x.take(7,1), [batch_size, 1]),\n",
    "                Com_BrandID : np.reshape(x.take(8,1), [batch_size, 1]),\n",
    "                PID : np.reshape(x.take(9,1), [batch_size, 1]),\n",
    "                User_CateIDs: user_cateids,\n",
    "                User_BrandIDs: user_brandids,\n",
    "                #movie_categories: categories,  #x.take(6,1)\n",
    "                targets: y,\n",
    "                #np.reshape(y, [batch_size, 2]),\n",
    "                lr: learning_rate}\n",
    "\n",
    "            step, train_loss, train_ctr_loss, train_cvr_loss, train_ctcvr_loss, \\\n",
    "                train_ctr_prob, train_cvr_prob, train_ctcvr_prob, \\\n",
    "                train_ctr_label, train_cvr_label, train_ctcvr_label, train_ctr_click,\\\n",
    "                summaries, _ = \\\n",
    "                sess.run([global_step, loss, ctr_loss, cvr_loss, ctcvr_loss, \\\n",
    "                                    ctr_prob, cvr_prob, ctcvr_prob,\n",
    "                                    ctr_label, ctcvr_label, ctcvr_label, ctr_clk, \\\n",
    "                                    train_summary_op, train_op], feed)  #cost\n",
    "            losses['train'].append(train_loss)\n",
    "            train_summary_writer.add_summary(summaries, step)  #\n",
    "            \n",
    "            \n",
    "            print(\"train batch click num:\", len(np.nonzero(y[:,0:1])[0]), \n",
    "                    \" buy num:\", len(np.nonzero(y[:,1:2])[0]))\n",
    "            \n",
    "            ctr_input_arr = np.concatenate((train_ctr_label, train_ctr_prob[:, 1:2]), axis=1)\n",
    "            train_ctr_auc = calc_auc(ctr_input_arr)\n",
    "            if train_ctr_auc > 0:\n",
    "                train_ctr_auc_arr.append(train_ctr_auc)\n",
    "\n",
    "            cvr_input_arr = np.concatenate((train_cvr_label, train_cvr_prob[:, 1:2]), axis=1)\n",
    "            train_cvr_auc = calc_auc_with_filter(cvr_input_arr, train_ctr_click)\n",
    "            if train_cvr_auc > 0:\n",
    "                train_cvr_auc_arr.append(train_cvr_auc)\n",
    "\n",
    "            ctcvr_input_arr = np.concatenate((train_ctcvr_label, train_ctcvr_prob[:, 1:2]), axis=1)\n",
    "            train_ctcvr_auc = calc_auc(ctcvr_input_arr)\n",
    "            if train_ctcvr_auc > 0:\n",
    "                train_ctcvr_auc_arr.append(train_ctcvr_auc)\n",
    "            \n",
    "            \n",
    "            # Show every <show_every_n_batches> batches\n",
    "            if batch_i > 0 and (epoch_i * (len(train_X) // batch_size) + batch_i) % show_every_n_batches == 0:\n",
    "                # 累积 show_every_n_batches 个batch的Train AUC\n",
    "                print (len(train_ctr_auc_arr),len(train_cvr_auc_arr) , len(train_ctcvr_auc_arr))\n",
    "                train_ctr_auc = train_ctr_auc if len(train_ctr_auc_arr) == 0  else sum(train_ctr_auc_arr) / float(len(train_ctr_auc_arr))\n",
    "                train_cvr_auc = train_cvr_auc if len(train_cvr_auc_arr) == 0  else sum(train_cvr_auc_arr) / float(len(train_cvr_auc_arr))\n",
    "                train_ctcvr_auc = train_ctcvr_auc if len(train_ctcvr_auc_arr) == 0  else sum(train_ctcvr_auc_arr) / float(len(train_ctcvr_auc_arr))\n",
    "                # 保存 AUC\n",
    "                ctr_auc_stat['train'].append(train_ctr_auc)\n",
    "                cvr_auc_stat['train'].append(train_cvr_auc)\n",
    "                ctcvr_auc_stat['train'].append(train_ctcvr_auc)\n",
    "                # 清空，并继续累积\n",
    "                train_ctr_auc_arr.clear()\n",
    "                train_cvr_auc_arr.clear()\n",
    "                train_ctcvr_auc_arr.clear()\n",
    "                \n",
    "                time_str = datetime.datetime.now().isoformat()\n",
    "                print('{}: Epoch {} Batch {}/{}  train_loss={:.3f} train_ctr_loss={:.3f} train_cvr_loss={:.3f} train_ctcvr_loss={:.3f} train_ctr_auc={:.3f} train_cvr_auc={:.3f} train_ctcvr_auc={:.3f}'.format(\n",
    "                    time_str,\n",
    "                    epoch_i, \n",
    "                    batch_i,\n",
    "                    (len(train_X) // batch_size),\n",
    "                    train_loss,\n",
    "                    train_ctr_loss,\n",
    "                    train_cvr_loss,\n",
    "                    train_ctcvr_loss,\n",
    "                    train_ctr_auc,\n",
    "                    train_cvr_auc,\n",
    "                    train_ctcvr_auc))\n",
    "                \n",
    "        #使用测试数据的迭代\n",
    "        for batch_i  in range(len(test_X) // test_batch_size):\n",
    "            x, y = next(test_batches)\n",
    "            \n",
    "            #user_id = np.zeros([test_batch_size, 1])\n",
    "            item_id = np.zeros([test_batch_size, 1])\n",
    "            for i in range(test_batch_size):\n",
    "                #user_id[i] = x.take(0,1)[i]\n",
    "                item_id[i] = x.take(1,1)[i]\n",
    "            #User_CateIDs, User_BrandIDs\n",
    "            user_cateids = np.zeros([test_batch_size, 100])\n",
    "            for i in range(batch_size):\n",
    "                user_cateids[i] = x.take(10,1)[i]\n",
    "            user_brandids = np.zeros([test_batch_size, 100])\n",
    "            for i in range(batch_size):\n",
    "                user_brandids[i] = x.take(11,1)[i]\n",
    "            feed = {\n",
    "                UserID : np.reshape(x.take(0,1), [test_batch_size, 1]),\n",
    "                ItemID: item_id,\n",
    "                User_Cluster : np.reshape(x.take(2,1), [test_batch_size, 1]),\n",
    "                CategoryID : np.reshape(x.take(3,1), [test_batch_size, 1]),\n",
    "                ShopID : np.reshape(x.take(4,1), [test_batch_size, 1]),\n",
    "                BrandID : np.reshape(x.take(5,1), [test_batch_size, 1]),\n",
    "                Com_CateID : np.reshape(x.take(6,1), [test_batch_size, 1]),\n",
    "                Com_ShopID : np.reshape(x.take(7,1), [test_batch_size, 1]),\n",
    "                Com_BrandID : np.reshape(x.take(8,1), [test_batch_size, 1]),\n",
    "                PID : np.reshape(x.take(9,1), [test_batch_size, 1]),\n",
    "                User_CateIDs: user_cateids,\n",
    "                User_BrandIDs: user_brandids,\n",
    "                targets: np.reshape(y, [test_batch_size, 2]),\n",
    "                lr: learning_rate}\n",
    "            \n",
    "            step, test_loss, test_ctr_loss, test_cvr_loss, test_ctcvr_loss, \\\n",
    "                test_ctr_prob, test_cvr_prob, test_ctcvr_prob, \\\n",
    "                test_ctr_label, test_cvr_label, test_ctcvr_label, test_ctr_click,\\\n",
    "                 summaries = sess.run([global_step, loss, ctr_loss, cvr_loss, ctcvr_loss, \\\n",
    "                                    ctr_prob, cvr_prob, ctcvr_prob,\n",
    "                                    ctr_label, ctcvr_label, ctcvr_label, ctr_clk, \\\n",
    "                                       inference_summary_op], feed)  #cost\n",
    "\n",
    "            #保存测试损失\n",
    "            losses['test'].append(test_loss)\n",
    "            inference_summary_writer.add_summary(summaries, step)  #\n",
    "            print(\"test batch click num:\", len(np.nonzero(y[:,0:1])[0]), \n",
    "                    \" buy num:\", len(np.nonzero(y[:,1:2])[0]))\n",
    "            \n",
    "            ctr_input_arr = np.concatenate((test_ctr_label, test_ctr_prob[:, 1:2]), axis=1)\n",
    "            test_ctr_auc = calc_auc(ctr_input_arr)\n",
    "            if test_ctr_auc > 0:\n",
    "                test_ctr_auc_arr.append(test_ctr_auc)\n",
    "\n",
    "            cvr_input_arr = np.concatenate((test_cvr_label, test_cvr_prob[:, 1:2]), axis=1)\n",
    "            test_cvr_auc = calc_auc_with_filter(cvr_input_arr, test_ctr_click)\n",
    "            if test_cvr_auc > 0:\n",
    "                test_cvr_auc_arr.append(test_cvr_auc)\n",
    " \n",
    "            ctcvr_input_arr = np.concatenate((test_ctcvr_label, test_ctcvr_prob[:, 1:2]), axis=1)\n",
    "            test_ctcvr_auc = calc_auc(ctcvr_input_arr)\n",
    "            if test_ctcvr_auc > 0:\n",
    "                test_ctcvr_auc_arr.append(test_ctcvr_auc)\n",
    "            \n",
    "            time_str = datetime.datetime.now().isoformat()\n",
    "            if batch_i > 0 and (epoch_i * (len(test_X) // test_batch_size) + batch_i) % show_test_every_n_batches == 0:\n",
    "                \n",
    "                # 累积 show_every_n_batches 个batch的Train AUC\n",
    "                print (len(test_ctr_auc_arr),len(test_cvr_auc_arr) , len(test_ctcvr_auc_arr))\n",
    "                test_ctr_auc = test_ctr_auc if len(test_ctr_auc_arr) == 0  else sum(test_ctr_auc_arr) / float(len(test_ctr_auc_arr))\n",
    "                test_cvr_auc = test_cvr_auc if len(test_cvr_auc_arr) == 0  else sum(test_cvr_auc_arr) / float(len(test_cvr_auc_arr))\n",
    "                test_ctcvr_auc = test_ctcvr_auc if len(test_ctcvr_auc_arr) == 0  else sum(test_ctcvr_auc_arr) / float(len(test_ctcvr_auc_arr))\n",
    "                # 保存 AUC\n",
    "                ctr_auc_stat['test'].append(test_ctr_auc)\n",
    "                cvr_auc_stat['test'].append(test_cvr_auc)\n",
    "                ctcvr_auc_stat['test'].append(test_ctcvr_auc)\n",
    "                # 清空，并继续累积\n",
    "                test_ctr_auc_arr.clear()\n",
    "                test_cvr_auc_arr.clear()\n",
    "                test_ctcvr_auc_arr.clear()\n",
    "                \n",
    "                print('{}: Epoch {} Batch {}/{}  test_loss = {:.3f} test_ctr_loss = {:.3f} test_cvr_loss = {:.3f} test_ctcvr_loss = {:.3f}  test_ctr_auc = {:.3f} test_cvr_auc = {:.3f} test_ctcvr_auc = {:.3f}'.format(\n",
    "                    time_str,\n",
    "                    epoch_i,\n",
    "                    batch_i,\n",
    "                    (len(test_X) // test_batch_size),\n",
    "                    test_loss,\n",
    "                    test_ctr_loss,\n",
    "                    test_cvr_loss,\n",
    "                    test_ctcvr_loss,\n",
    "                    test_ctr_auc,\n",
    "                    test_cvr_auc,\n",
    "                    test_ctcvr_auc))\n",
    "\n",
    "    # Save Model\n",
    "    saver.save(sess, save_dir)  #, global_step=epoch_i\n",
    "    print('Model Trained and Saved')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 在 TensorBoard 中查看可视化结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "tensorboard --logdir ./runs/1561914199/summaries\n",
    "\n",
    "<img src=\"assets/esmm_tf_loss.png\"/>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 辅助函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "import os\n",
    "import pickle\n",
    "\n",
    "def save_params(params):\n",
    "    \"\"\"\n",
    "    Save parameters to file\n",
    "    \"\"\"\n",
    "    pickle.dump(params, open('./save/params.p', 'wb'))\n",
    "\n",
    "\n",
    "def load_params():\n",
    "    \"\"\"\n",
    "    Load parameters from file\n",
    "    \"\"\"\n",
    "    return pickle.load(open('./save/params.p', mode='rb'))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 保存参数\n",
    "保存`save_dir` 在生成预测时使用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "save_params((save_dir))\n",
    "\n",
    "load_dir = load_params()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示训练Loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwUAAAH0CAYAAABsNIHsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8XHW9//HXdyb73iRt030vLWuhQFuLAqJsIvSnoKKilyt671UUEAQVUFxxg6ss3guogIIXAbmUCyggFqHQFigILbRQurfpmqTZ9/n+/pgl58ySzGQmk0nm/Xw8+phkljOnbQrnM5/NWGsREREREZHs5RnuExARERERkeGloEBEREREJMspKBARERERyXIKCkREREREspyCAhERERGRLKegQEREREQkyykoEBERERHJcgoKRERERESynIICEREREZEsp6BARERERCTLKSgQEREREclyCgpERERERLKcggIRERERkSynoEBEREREJMspKBARERERyXIKCkREREREslzOcJ/AaGSM2QqUAduG+VREREREZHSbDjRZa2ckcxAFBUOjrLCwsHL+/PmVw30iIiIiIjJ6bdiwgfb29qSPo6BgaGybP39+5dq1a4f7PERERERkFFu4cCGvvfbatmSPo54CEREREZEsp6BARERERCTLKSgQEREREclyCgpERERERLKcggIRERERkSynoEBEREREJMspKBARERERyXLaUyAiIiLDxufzUV9fT3NzM52dnVhrh/uURIaNMYb8/HxKS0uprKzE40nf5/cKCkRERGRY+Hw+du7cSVtb23CfikhGsNbS0dFBR0cHra2tTJkyJW2BgYICERERGRb19fW0tbWRk5NDTU0NxcXFaf1kVCTT+Hw+Wltb2bt3L21tbdTX11NdXZ2W99a/PBERERkWzc3NANTU1FBaWqqAQLKex+OhtLSUmpoaoO/fSFreO23vJCIiIuLQ2dkJQHFx8TCfiUhmCf6bCP4bSQcFBSIiIjIsgk3FyhCIuBljANLaeK9/hSIiIiIiGSQYFKSTggIRERERkSynoGAUebu2ic0HWob7NERERERkhFFQMIr84PG3Oe2mf3DJva+wekudFsCIiIhIXFpaWjDGcM455yR9rOOPP56SkpIUnFXq3HbbbRhjePjhh4f7VDKWgoJRYv3uRlZtqQPgbxv286k7V3PubS+y/J+76e71DfPZiYiISDTGmIR+3XPPPcN9yjJKaXnZKJHjNZw2bxzPbtwfum/d7kYue+Cf/PQvG7l46Qz+Zel0cr2KA0VERDLFd7/73Yj7fvnLX9LY2Mhll11GRUWF67EFCxYMyXkUFxezYcOGlHzC/+c//zmtozQlNRQUjBLzasr47b+cwHv7W/jtyq088touOnv8GYLaxg5+9OQGdh9q54ZzjxjmMxUREZGgG264IeK+e+65h8bGRi6//HKmT5+elvMwxjBv3ryUHGvatGkpOY6klz42HmVmjyvhxo8dxUvf/CBXfGguVcV5ocde39EwjGcmIiIiqRKs229vb+e6665j9uzZ5OXlcemllwJQV1fHT37yE04++WQmTpxIXl4e48eP5+Mf/zhr166NOF6snoKrrroKYwyvvvoq999/PwsXLqSwsJDq6mouuugi9u/fH3GsaD0Fjz/+OMYYfvGLX/Dyyy9zxhlnUFZWRklJCR/60IeinhPAjh07+OxnP0t1dTVFRUUsXLiQP/3pT67jJWvVqlWcd955VFdXk5+fz8yZM7n88ss5cOBAxHNra2u57LLLmDt3LkVFRYwZM4b58+fzhS98gZ07d4ae5/P5uOuuu1i0aBHV1dUUFhYydepUzj77bB599NGkz3koKFMwSlWV5HPZh+bwkaMn8KGb/wHAofbuYT4rERERSRWfz8c555zDO++8wxlnnEFVVVXoU/rXX3+d7373u5xyyimcd955lJeXs3XrVh577DEef/xxnnnmGT7wgQ/E/V4/+9nPePzxxznvvPM49dRTefHFF7nvvvtYv349r776Kl6vN67jrFy5kuuuu45TTjmFL33pS2zZsoVHH32UU045hfXr17uyDLt27WLJkiXU1tZy2mmnccIJJ7B7924+//nPc9ZZZyX2hxXDgw8+yGc+8xm8Xi8XXHABkydPZvXq1fzqV79i+fLlvPjii0ycOBGApqYmFi1aRG1tLaeffjrLli2ju7ub7du38/DDD3PRRRcxZcoUAC6//HJuvfVW5syZw4UXXkhJSQm1tbWsWbOGRx99lGXLlqXk/FNJQcEoV+nIFBxqU1AgIiIyWrS3t9Pc3Mz69esjeg+OO+449u7dy5gxY1z3b968mUWLFnHllVfyyiuvxP1ezz77LP/85z+ZO3cu4N+0u2zZMh577DGeeuopzj777LiOs3z5ch566CHOP//80H033XQTV111Fbfffjs/+9nPQvdfeeWV1NbW8v3vf5/rr78+dP+Xv/xlTjrppLjPPZb6+nouueQSjDGsXLmS448/PvTY9ddfzw9/+EMuvfRSHnnkEQCeeOIJdu3axXXXXccPfvAD17E6Ojro6ekB+rIEs2bNYt26deTn57uee/DgwaTPfSgoKBjlygr6/oqbOrrp9Vm8nvRvyRMREUnU9G8+MdynELdtP/nIsLzvjTfeGBEQAFRWVkZ9/qxZszj33HO5++67qa+vj/m8cN/4xjdCAQH4exAuueQSHnvsMV5++eW4g4IzzjjDFRAAfOlLX+Kqq67i5ZdfDt3X3NzMI488wrhx4/jGN77hev7ixYu54IILeOCBB+J6z1geeughmpub+eIXv+gKCACuvfZafvOb37B8+XIOHjxIdXV16LHCwsKIYxUUFLi+N8aQl5cXNYPiPFYmUU/BKJfj9VAaCAysheYOZQtERERGixNPPDHmYytWrOBjH/sYkydPJi8vLzTW9O677wZg9+7dcb9P+EUzECqVaWiIv2cx2nFKS0spLy93HWf9+vX09PSwcOHCiAtuICWZgtdeew2AD37wgxGPFRQU8L73vQ+fz8cbb7wBwIc//GHGjh3L9ddfzznnnMPtt9/OP//5T3w+9+h3j8fDpz71KTZs2MCRRx7J9ddfz9NPP01zc3PS5zyUlCnIAhVFuTR3+FNaje3dVBTlDfAKERERyXRFRUWUlpZGfey+++7jc5/7HCUlJXz4wx9mxowZFBcXY4zh6aefZtWqVQmNDY2WjcjJ8V9G9vb2JnWc4LGcx2lsbARg/PjxUZ8f6/5EBN9jwoQJUR8P3n/o0CHA/wn/mjVruOGGG3j88cd54oknQufyta99jWuuuSaUGbjjjjuYN28e9957Lz/84Q8ByM3N5dxzz+Wmm27KyAlNCgqyQEVhHjtpB/x9BdOqhvmERERE4jBcJTkjhTGxy4Gvu+46SktLef3115k5c6brsU2bNrFq1aqhPr2klJWVAbBv376oj8e6PxHl5eUA7N27N+rje/bscT0PYMaMGdx77734fD7Wr1/Ps88+y2233ca1116L1+vlmmuuAfwBwNVXX83VV1/N3r17eeGFF7jvvvv485//zMaNG3njjTfibs5OF5UPZYHywtzQ15pAJCIiMrr19PSwfft2FixYEBEQdHd3Z3xAAHDUUUeRk5PD2rVr6ejoiHh85cqVSb/HscceC8Bzzz0X8VhnZyerVq3CGBN1YZzH4+Hoo4/miiuu4PHHHweIOWq0pqaGCy64gOXLl3PiiSfy1ltv8d577yV9/qmmoCALlBc5goK2rmE8ExERERlqOTk5TJo0ibfeess16cbn8/Gtb32LrVu3DuPZxae0tJRly5axf/9+fv7zn7seW7NmDQ899FDS7/GJT3yCkpIS7r777lDfQNCNN97Inj17QvsLAN58882ok4OCWYuioiLAv/PB2TQd1NnZGSpZitasPNxUPpQFKhyZgkZlCkREREa9K664gquuuoqjjz6aj33sY3g8Hv7xj3+wbds2zjrrLP7yl78M9ykO6KabbmLlypV85zvf4fnnn+eEE05g165dPPjgg3z0ox/l0UcfxeMZ/OfblZWV3HnnnVx00UUsWbKECy64gEmTJrF69WpWrFjB1KlTue2220LPf+yxx/j+97/P0qVLmTNnDtXV1Wzfvp3ly5fj9Xq56qqrAH8PwqJFi5g3bx7HHnssU6dOpa2tjb/+9a9s2rSJT3/600ydOjXpP59UU1CQBSpcmQIFBSIiIqPd17/+dUpKSrjtttv43e9+R3FxMaeccgoPPvggd91114gICqZOncrq1av51re+xVNPPcXKlSs5/PDDuffee2lvb+fRRx8N9R4M1oUXXsjUqVP5yU9+wuOPP05zczMTJ07kq1/9Ktdddx3jxo0LPffcc8/lwIEDvPDCCzzyyCO0tLQwYcIEPvrRj3LllVeGJitVVVXx4x//mBUrVvDCCy9w4MABysrKmDNnDtdccw2f//znkzrnoWKstcN9DqOOMWbtcccdd1ysld3pdtfzW/jRkxsA+NelM/jORw8f5jMSERGBDRv8/2+aP3/+MJ+JjDSXXXYZt9xyCytXrmTp0qXDfTpDIt5/HwsXLuS11157zVq7MJn3U09BFnD1FLSrp0BERERGhtra2oj7XnnlFe68804mTpzIokWLhuGsRieVD2UBV0+ByodERERkhJg/fz7HHXccRxxxBAUFBbzzzjuh0qfbb789tCtBkqc/ySzgXFamkaQiIiIyUnz5y1/mySef5P7776elpYUxY8ZwzjnncPXVV/O+971vuE9vVFFQkAUq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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 386
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(losses['train'], label='Training loss')\n",
    "plt.legend()\n",
    "_ = plt.ylim()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示测试Loss\n",
    "迭代次数再增加一些，后面出现严重过拟合的情况"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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w+/fOoiP3PMibnvq3Yl+K0RElIRTTjkFZWVlE/02shaDAiKiODz40k509I/gP984gD3t/RP9doiIxoUQIqE/jz76aEbfT39/P4QQuPTSSzP6OpNR2vYUEBHlKyklDnYPml/v7fChqZ5Xm4go/333u9+NuO2+++5DT08Pbr75ZlRVVWn3LVmyZLzeGqUZgwIiohj6h8cwNBowv97fOTCB74aIaPysXbs24rZHH30UPT09+MpXvoLZs2eP+3uizGD5EBGl7I09nTjnxxvx1Sfezstm3CN9+vKYA10MCoiIYmlvb8ett96KBQsWoKioCNXV1bjggguwcePGiMcODg7iRz/6EZYsWYKqqiqUlpZizpw5uOKKK/DKK68AAB566CFz2+9zzz2nlS396Ec/Svp9+v1+PPDAA1i6dClKS0tRVlaG5cuX45FHHrF9/IYNG3DRRRdh2rRp8Hq9mDp1KlauXIkf/OAH2uNaW1tx8803Y/78+SgpKUF1dTUWLVqEG2+8Ec3NzUm/30xhpoCIUvbQy7uwp92HPe0+/N3ymVg2q2ai31JatTMoICJKyI4dO3DOOefg4MGDWLVqFS655BL09vbi6aefxrnnnovHHnsMV199tfn4q666Cs888wxOPvlkXHfddfB6vTh48CBeeeUVvPTSSzjrrLNw6qmn4tvf/ja+//3vY968edrzV6xYkdT7DAQC+MQnPoF169Zhzpw5+PznPw+/348nn3wSN954IzZt2oR//dd/NR//P//zP7jyyitRW1uLyy67DI2Njejo6MAHH3yAhx9+GN/85jcBAL29vTjttNPQ2tqK1atXY82aNRgdHcX+/fvxu9/9Dtdccw1mzJiR5E83MxgUEFHKDh4N19u3dg9h2awJfDMZYA0K9nf6JuidEBHlhquvvhptbW1Yt24dLrvsMvP2zs5OrFy5El/4whdw8cUXo6qqCocOHcIzzzyDs846Cxs3btQWd0kp0dXVBQA49dRTsXjxYnz/+9/H/PnzbUubEvXLX/4S69atw4oVK/Diiy+iuLgYAPC9730PK1aswC9+8Qtceuml5vcQChA2bdqEY489VjtWR0eH+flzzz2HlpYW3H777fje976nPW5oaAhjY2Mpv/d0Y1BARClTy2s6+4ejPDI3WcuHmo8OIhCQcLnGf+MkEWWP2d96bqLfQtz2/dMl4/Zar732GjZv3ozrrrtOCwgAoLa2FnfccQc+/elP4+mnn8a1115r3uf1eiM2+QohUFtbm7H3GioR+uEPf2gGBABQUVGBe+65B2vWrMG//du/ad+HEAJFRUURx6qrq4u4TT1miN1zswGDAiJKycDIGPqHw1c8On0jE/huMsOaKRgZC+Bw3xCmVkb+ZU9ENNn9+c9/BhDsKbC7mn/w4EEAwLZt2wAAU6dOxapVq/DCCy9g2bJluOKKK3DmmWfi1FNPzfgJ9FtvvYWioiKcfvrpEfedc8455mNC/u7v/g7r16/HkiVLcNVVV2HVqlVYuXIlpk6dqj33/PPPR319Pe644w68/vrruOiii7By5UqceOKJcLmys6WXQQERpeRIr37CPBmCAiA4gYhBARFRpM7OTgDBEprnnnPOpvT3h3e+PP3007j33nvxxBNP4PbbbwcAlJSU4FOf+hR++MMfoqYm/b1qQ0NDGB4exuzZsyMyFABQXl6O0tJSdHd3m7dde+21KCsrw3333YeHH34YP/vZzwAAy5cvxz/90z/h7LPPBhDMGrzxxhtYu3Ytnn32WfPnMGXKFNx000345je/CbfbnfbvKRUMCogoJe2WcqH8LB8airjtQNcAljdlLqVNRNlvPEtyckllZSWAYL3+DTfcENdzysrKcO+99+Lee+/F/v378cc//hG//OUv8cgjj6C1tRV/+MMf0v4+i4qK4PF4cPjwYdv7+/r64PP5MG3aNO32K664AldccQX6+vqwadMmPP3003j44Ydx8cUX491330VTUxMAYM6cOfj1r3+NQCCA9957Dxs2bMBDDz2E73znO3C73WZTcrbIzvwFEeWMiExB/+TIFBzgrgIiIlvLly8HALz66qtJPX/WrFm49tprsWHDBkybNg3r16/H4GBwoEXo6rrf70/Lez355JMxODiIN954I+K+l19+GQCwdOlS2+eWl5fj/PPPx4MPPohbbrkFAwMDeOGFFyIe53K5cOKJJ+KWW27Bs88+CwD4/e9/n5b3n04MCogoJdar6F2TpXyIY0mJiGydffbZWLp0KR5//HH85je/sX3Mli1bcPToUQDAoUOHzP4CVehKvcfjMYOB4uJiFBcX48CBA2l5r6FMxje+8Q0MD4f/ru/r6zPLmG688Ubz9o0bN9oGJKFsQ0lJCQDgnXfe0aYROT0um7B8iCiNBkbG0Ds4hsbK7JwskAnWyTwdeVY+NOoPoGsgMtA5wLGkRES2hBD47W9/i3PPPRdXX301fvzjH+MjH/kIysvL0dLSgrfeegvbt2/Hu+++i+rqauzevRtnnnkmTj75ZBx//PGYNm0auru78cwzz6C7uxu33XYbPB6Pefxzzz0Xzz77LD7xiU/ghBNOQEFBAc477zwzQ5GIz372s3jmmWfw7LPP4vjjj8dll11m7ilobm7GDTfcgMsvv1x7fH9/P1asWIHZs2fD5XLhzTffxKuvvor58+fj4x//OIBgj8Tdd9+NlStXYt68eairq8P+/fuxbt06uN1u3Hrrran/oNOMQQFRmnQPjOCcH/8RXb4R3P+pJbh8ybTYT8oD1qvovUNjGBkLwFOQH4nILt8IQkuaC1wCY4HgF1xgRkTkrKmpCW+99Rbuv/9+PPXUU/j3f/93SCkxdepUHHfccfj6179uzvlfuHAh7rzzTmzcuBEvvvgiOjs7UVtbi0WLFuG+++7DlVdeqR375z//Ob7yla9g48aN+P3vf49AIICioqKkggKXy4WnnnoKDz30EH7961/jX/7lXyCEwHHHHYc777xTyxIAwHe/+10888wz2LJlC9avXw+3242ZM2di7dq1+Md//EeUlZUBAC677DK0t7fj1VdfxZNPPon+/n5MnToVH/vYx/C1r30Np5xySpI/2cwRMvSvHaWNEGLz0qVLl27evHmi3wqNo2e2tuIffxMcW3Z6Uy1+87nE/3LKRdc+8iZe2dGu3bbp2+fmTbbk3ZYefOyhPwEAFkwpx95OH0bGAgCAd9auRkVR4US+PSLKoFBJy6JFiyb4ndBkFO/v37Jly7Bly5YtUsplqbxeflzKI8oCPYOj5ufb23oxWQLuI72Rk3k6fflTQtTeH/7+Giq8mFkTrgNlszEREeULBgVEadI7FA4Kjg6M2jan5iO77zOfJhCp319DeRFmqUEBS4iIiChPMCggSpPewTHt6+1tfRP0TsaPUxNuPmUK1JGr9eVezFCCgv3MFBARUZ5gUECUJmr5EBAsIcp3nf3hJlzr7flCXc5WX+7FrFo1U8AJRERElB84fYgoTdTyIQDYfij/MwV2m34BoHMCdxX4hsfgLXChwJ2eax56+ZAXpd7wWnqWDxERUb5gpoAoTXojMgWTICjotS8T6pygXQVv7OnER+55EWf84GUcTVNgou5hqC/XG41ZPkRERPmCQQFRmvQO6T0Fu470Y9QfmKB3Mz7U0pqKonDicaK2Gj+55SAGRvxo6x3C+g/a0nLMdktQML26BEIEv27tHjTHkxIREaXLREwwZFBAlCZ9lkzBiD+AvR35XXOuZgoWTq0wP++YoJ4Cta/j6MBolEfGR0qplUg1lHtRVOhGY0VwB0NABgMDIspPwrgCEAgw+KfxFQoKQr+D44FBAVGaWHsKgPwvIVJPmBcrQcFETR/yjYSzNX02/z0S1T88hqHR4MlAUaELZd5gNkQrIWJfAVHe8nq9AACfL78v8FD2Cf3OhX4HxwODAqI0kFJGTB8CgO2H8nsCkVpvv7Cx3Py8a4IyBf3D4aDAOiI2GdbSodAVG32BGU8WiPJVeXnw77W2tjb09fUhEAhMmsWUNP6klAgEAujr60NbW7AENvQ7OB44fYgoDYZGAxj1R/5Dke+ZAvWkuam+DIVugVG/hG/Ej8ERP4o97ijPTj/fcHozBUcsi8tC9LGkzBQQ5auamhr4fD4MDAygpaVlot8OTTIlJSWoqakZt9djpoAoDexKhwDgw0kUFEyp8KK2NJzmnIgSIt+w3/zc2vidDC1TUBb+3mbWlpqfcwIRUf5yuVyYMWMG6uvrUVRUNK713TQ5CSFQVFSE+vp6zJgxAy7X+J2qM1NAlAbqONJZtSU41D2EEX8AB7sH0TM4isriwgl8d5khpYwor6kp9aCtN9hn0OUbwfTqEqenZ0R/mjMF2o6CCiUoqGGmgGiycLlcqKurQ11d3US/FaKMYqZgEpNSsjYyTdRMQU2pB3Mbysyv8zVb0D0wihFj5GqZtwAlngLUlnnM+8d7q7GUUisfSkdPwRGHTMEsS1DA/4+IiCjXMSiYpDbv78JH7nkRH//Z6xga9cd+AkWlNhlXFBVikdJ0+2FbfjYbqzsKGsqDJ8x1yolzxzgvMBseC2AsED45T3emoL48/L1VlRSi3NjLMDDin7ARrEREROnCoGCS+vH6HejoH8Hbzd14efuRiX47OU+9Kl1RXIiFU8NBwbY8zRSoOwpCJ8w1peFMwXgvMFOzBEB6egq0HQVK+ZAQwtJszAlERESU2xgUTEJ9Q6N4c2+X+XX7OF/RzUdq+VBlcQEWNIZn9ufrWFL9hDk4mUcrH0pTUNDZP4xntraieyD68fotQUH/8Bj8gdTKevRG4yLtPm1XAZuNiYgox7HReBJ6dWeHVmZx1Jd6mcVk1xulfGjH4X4EAhIuV35NrbCbzFNXGrt8SEqJ3/61BW29Q/j7M5uiji2VUuL6R/+Cd1p6cPy0Cjzz5TMcp39YgwIA6B8aQ2VJ8k3e6veglg8BwMya8AQiNhsTEVGuY1AwCW3YppcLHY1xBZZiU0tVKooLzUk8Xb4R9A+P4WD3IGbUjO8knkw7YjOZJ55G4017uvCN/3kHQDCYuv3SxY6v8X5rL95p6QEAvHewF8NjARQV2gcR6jjSkN6h0aSDgjF/wMx2CKF/b4BlVwEzBURElONYPjTJBAISGz/UgwK7TbyUGGumQAiBBVOUvoI8LCHSF3vF31OweX+4dG3d1taoJT7r32/TvnbaBwFE9hTEenwsnb4RhIYK1ZR4UOjW/7rUyoeYKSAiohzHoGCS2drSHVHrzUxB6rTpQ8XBBJzabJyPY0mP9Co9Bca2X3X6UKdD+dCe9nBTbnvfMDbvP+r4Gus/OKx93R+lediufKgvhWZjp8lDIdxVQERE+YRBwSRjN2moe4CZglSpV6QrioLlKovUZuM8DArabert1RKbDt+I7fz+PR36pJ4/vHfI9vgHOgcifm7RTvJtMwUpZMHURmq7oOCYqmIUGH0i7X3DGBhJfdoRERHRRGFQMMlssA0KmClIlXUkKQAsaFTHkuZf+VB7b2T5UImnAEWFwb9WRsYC8I3odf5SSuxp79du+7/32hCwKSFa/0FbxG3RgoLxzhS4XQLTq4vNr5ktICKiXMagYBJp6xnC+62RJ6dHmSlImT6SNBgUzJ9SjtCgnH0dvrxaEjc44kefcRLucbtQpTTz1pY6lxB1+UYi9gcc6hnC1pbuiNewlg4BQP9wtJ4C+0bjZLVrPRNFto+ZWatMIGKzMRER5TAGBZPIy0qD8WlzaszPe4dGU57nPtnpjcbBnoJijxtzjJPGgAR2Hu63fW4uspbWqGNC69QSIssEImvpUMgf3tOzAp39w/jrvq6Ix0VbSOazKd9JJVNwJEamAABmsa+AiIjyBIOCSeQlpXRo9XGNKDdOXqVMrfZ6spNSaier5UXhq+b5WkKkXkWvs5wwR5tApJYOqU3Jf3jvkNZ/sGH7EdjFqYk2Gqfyex2rfAjQx5JygRkREeWytAUFQojpQohHhBCtQohhIcQ+IcR9QojqBI9TYzxvn3GcVuO40x0ef6UQ4kEhxKtCiF4hhBRCPB7H67iFEJ8VQrwihDgqhBgUQuwRQjwhhJifyHvOBUOjfvxpZ4f59TkLG1BdEj554wSi5PlG/GampbjQDU9B+H+rhUqzcT5NILIbRxpSG2UCkZop+OQp01HuDQamzV2DWmnb+vfDpUOh4BVIvNE4XZkC6/cYMoNjSYmIKE+kJSgQQswFsBnA9QDeBPDPAPYAuBnAn4UQtXEepxbAn43n7TaO86Zx3M1CiCabp90O4MsAlgA4GOfrlAFYD+AXAMoB/BrA/QBeA3AagLwLCjbt6cSgUdPeVFeKOXWlWh14NzMFSeu1GUcaoo4l3Z5HmQJ9HKk1KFAWmEVkCsJBwcLGcpy3eIr5dWgK0eCIH3/a1W7efumJU83P+8ZxT0GimYJ9DqVRREREuSBdmYKfAWgAcJOUco2U8ltSynMQPKlfAOCeOI9zL4In5D+RUp5rHGcNgkFCg/E6VrcYz6kA8A9xvs7DAM4B8AUp5clSyq8Yr3WNlHI2gOfjPE7OUEeRrlrYAACoUjIFnECUPLtxpCELlfKh7YfyNVOgN+HWljpvNd6rnDg31ZXhwuMbza//8G4bpJR4ZWc7hkYDAIB5DWU4YVqV+Ri7EqFo9yWbKZBSWhqN7YOC2bWlMKaSovnoQF41kxMR0eSSclBgZAlWA9gH4KeWu78LwAfgGiFEKaIwrt5fYzx+reXuhwDsB3CBNVsgpXxZSrlT2g1Et3+dpQCuBvCElPJhu8dIKfPqsrmUUhtFem4oKCgOn8Ae9eXVtzyu1HGklcV6UDCjugQlHjeA4FVz9UQzl0W7iq5NH/KFHzfmD2B/ZzgomF1XgrPn15s/nz0dPuw43K+VDq0+bgrK4i4fSt/0of7hMTOzVlToQpm3wPZxRYVuzDKayaUEdrfnTzM5ERFNLunIFKwyPq6XUgbUO6SUfQiW5JQAWB7jOMsBFAN4zXieepwAwlfvV1mfmKCrjY+/EUJUCiE+LYT4thDic0KIY1M8dlbadaQfLUcHAQBl3gKcMjs4eaia5UNpoZcP6UGByyX0ZuND+VFCFL2nwD5TcLB7EKN+aT6nvKgQRYVuM3MFAM++04oN25WgYHGj3lMQJVOQzp4Ca9CjTleyOrahzPx81xEGBURElJvSERQsMD7ucLh/p/ExVp1+uo4Ty0eMj7MQ7Ft4DMGypYcB7BBC/FQI4U7xNbKKmiU4a36d2QjL8qH06LEZR6paMCUcFOTLlWQtKKjQgwJ1qpDaU6D2E8ypCycOL1JKiH75p73mhu3GiiKcMK1S+5lG6ylI5/SheHYUhMxTgoJ8GjtLRESTSzqCgkrjY4/D/aHbqxzuT/dxYgldlvwJgI0AFiHYbHwegkHCFwHcEc+BhBCb7f4AWJjie0wrdRTpqgXhq7Jao/EkX2A2PObHPzy+GX/z8z8nvIRK6ymwZAoAoKk+fAK8N45m1P968wC+/eS7aM7iaTbtfWqjsX7SXKP1FIRPrtXJQ0314RPpVQsa4DUC1QFlA/J5ixvgcgmUecM/02Q2GsdZWajRdhSU2fcThMybogQFR/Knb4SIiCaXybinIPQ9bwdwlZRyu5SyX0q5AcCVAAIAviqE8DgeIYd0D4xg8/6jAAAhgI8qQQFHkoY9teUg/vBeG97c14V/fXV3Qs9VewqsjcYAMKcufNIYKyjY3taLbz35Ln7z5gH8aP2HCb2P8TLmD5gZACH0ciEgck9B6KRc3VHQpGQKSr0FOHt+fcTrrF4czCCo5UNOewoCAakFFAVG9++IP4DhsYDtc6KJZ/JQyLyGcCZoJ8uHiIgoR6UjKAhdwa90uD90e/c4HSeW0POfkVJqnYlSyq0A9iKYOVgU60BSymV2fxAMOLLCn3d3mjP0T5xepZ3gMFMQtuXAUfPzHW2JndjpmYLI8iG1VEYtobHz1oHwr3e29h90+kYQuvheU+JBoVv/a6So0G3uHxgLSDNo0iYP1etzBy4+Yar2dbm3AMubgpOMy+IoH1K3GZd43FrDdzLNxvHsKAiZW1+GUMvB/s4BDI9xAhEREeWedAQFocuZTrX+84yPTr0C6T5OLKHXcQouQmeHxSm+TlbYpizMOm1OjXaf1lMwOLkzBVubw1VrezsTmzev1q1bpw8BwMyaEnNsZWvPYNSxlWqjalvPkOPjJtKR3thX0WuU7EGHMYFIDYjU8iEAOGdRAwrd4WbeVQsbzN6XMk84KFAXxanUyUOl3gItu6BmcuKVSKag2OPG9OrgXxf+gMS+juwt+yIiInKSjqDgZePjaiGEdjwhRDmAlQAGAGyKcZxNAAYBrDSepx7HheDYU/X1kvWi8fF46x1CCC/Cwce+FF8nK+xQggK14RXQpw9N5pGkAyNjWi14e99w1IZWq2h7CgDAU+AyN99KCeyLEnSoQUHv0BgGR7LvqvMRtZ+gwr4J17qrwDc8hjZj4VmBS5gn0SEVRYVaCZG6vyDYV6CUENn0Dqi3lXkLtN6ORP5bhrT3OzdS25mvlRCxr4CIiHJPykGBlHI3gtuBZwP4kuXuuwCUAnhMSmmeCQkhFgohtGZcKWU/gpOAShG5p+DLxvGfl1LuSfEt/w+AVgBXCSFOtdx3B4JlSi9LKdtSfJ2ssOOwEhQ06kEBpw8FvXewF9aLz4lc7e2JMpI0RC0h2hulhMg60rKtN/uyBe1xNOHWqhOI+oe10qFH712OAAAgAElEQVSZtSURJUcAcPsli3H2/HrcsHIOLjyuUbuvPEYJkTqOtNTrtjw+8UyBurG5viz69CEAOFZpNt7BCURERJSD7DfyJO6LAF4H8IAQ4lwA2wCchuBOgR0AvmN5/Dbjo3X4920APopgo+8SAG8iWNt/OYAjiAw6IIRYA2CN8WXoTOJ0IcSjxucdUspbQ4+XUvqEENcBeBbAq0KIJwEcNN7vGcbrfD7O7zurDY36zavSQujz1IFg3bZLAAEZLMsYGQuYJRuTyTstkZVkezt9OGG6U3uLLlajMRAMCjZ+2A5An8KjGhzx42D3oHZbW8+QFlBkg2jjSEO0TIFvBKNK1NXk8P3MrivFr2+wxulB5UUFOGRUeNllCrSgwFOg/XdIpqegoz/+8iFAbzbexUwBERHloLQEBVLK3UKIUwDcDeBCABcDOATgfgB3SSmPRnu+cpxOIcTpCG5CXgPgTACdAH4F4E4pZYvN05YA+IzltibjDxDchHyreqeU8gUjS3AHgqNIKwG0Afg5gO9JKVvjeb/ZbteRfvMK+KyaEhQV6usXXC6BqhIPuoxJMt2DIzFnsuejrS2RU3CjXc23itVoDOgnwk4TiOx2GBye4EzB4IgfxR7990YrH3I4YbYuMFOXmFn7CeKhlg/ZXfm3lg+lkimINV3JDncVEBFRrktXpgBSymYA18f5WMf1oFLKLgA3G3/iOdZaRJYbxfO8rQiOIM1baunQfEs/QUhVSaEZFPQMjE7OoKA5MlMQre7fStto7JgpiD2W1C4omKjyISkl/uHxLXhh22F8/qwmfP2CBeZWX7XR2On3pbZUXWA2rJVYJZP5KC+K3iOgTh8q9VoyBQkuMIs1XcnO3Ab9v++oPxDX84iIiLIF/9XKY2pts7WfIKRKqYE/OgnHkh71jeCAzZIwpxIfq0BAok+5Sl1us9EYiG+BmbWfAJi4CUT7Owfwf++3wR+Q+NnG3Xj8jQPmfe1xlNZomQLfiD6ONImgoCzGlf/+iOlD8S08s5PI5CHz/XkLMK0q2Dw9FpDYn+AEKyIioonGoCCPxZMpmOwLzN45GC4dOqYyfNV7b3t/XJtw+0fGzKvKZd4CFDhcHW6sKEJRYfC+Lt+IbWO3XVCQzvKhnoFR3PjoX3Djo39BT4wAsNXS23DX0+9j055OANZMgVNPQfj2jr5hbRzpnPrEg4KKGEGBTysfcmtlXIn2FCQTFAB6zw5LiIiIKNcwKMhjH7Y5Tx4KqVTGksY6UcxH7yilQ+csakCJUT/fOzQWV+ZE/ZlVOGQJgGD/xuza6NkC20xBGoOC/3zzADZsP4IN24/gib8eiPpY6+uOBSS++B9b0Nw1oJ00OzYaK5mCHYf7zJr/cm+B48SiaNQr/zEbjVPMFKg9E4kEBVpfATcbExFRjmFQkKf6hkbNSTaFbv2EVDXZMwVblclDJ02vspy4xz6x05uM7fsJQqKVEI35A7Z9DIfTWD60U8kcOZUwhdgFI12+EXzmV29ixB8AEMyMlHjsAyE1KFCDq6b6UrM3IRF6o3FksBaxp0BbXjY+mYJ5UxgUEBFR7mJQkKfUk5KmujLHUaPaArNJlimQUmqTh06aUaWVtuyNY1dBPONIQ+ZEmUC0v2sAo/5gHVKNMs7zSN+w7QbfZDQfDX8/h2IEG2owcvEJjea2YbUMKNoJsxpsqpIdrxprmlA6MwWtyvc+JYHG+2PVBWaHOZaUiIhyC4OCPKVuMp7vUDoEAJXKyVvP4OTKFLT1DplXhUs9bsytL8OclDIF0Yd5qROIrI3MaunQ4qkVZrA2FpDoVBp7U9HcFe4TONQdPShQMwUXHj8Vd18esQA8alBQ6HahqiQySEpmHCmgZwr6bYMCvdE4lZ6CZqXxfKaxiToeak/Bng4fxoyMChERUS5gUJCnPlQ3GU9xPhHTMgW+yZUp2NoczhIcP60SbpeIejXfTm8c24xD1GPvaXcOCo5tKMOUivAV6nT0FQyP+XFYqZU/1DMY5dFAm9JM3FhRhL89dSauPX2W9hinJuMQdYFZSPKZAnUZWaw9BW4ta5NopmB/pxIU1MYfFFQWF2KK0WMxMhZA89HoP2MiIqJswqAgT8UzeQiY3D0F6ibjk2ZUAUDC5UM9cewoCFFHce7r8CGglAXtVoKCuQ1laFQmIUUbS9raPYiHXtppu2tBdfDoINRhSr1DY1rJjZVaPtRoBCh3XLoYy5tqbL8fO+oEIvM5SUweAvQm7v5hmz0FWlBQmPSegjF/QNsqPaM6/qAA0Dcbs4SIiIhyCYOCPPVhW+wdBUDw6mZIT4INmblObTI+cXolAGjlQ/s6fDHHkqpXrWNlCqpLPWZJzeCofuV+l7K4bG59qXkiDkQfS/r1323Fj9bvwGd+9WbUk3y7q9ZOGQh/QGq7CEIThgrdLvzL3y3Dx0+ehvMXT8G1K2Y7vh5gvwk42UxB7D0Fak+BW3t8/8iYFoBF09o9ZPZwNJR7I7Y5x3IsJxAREVGOYlCQhzr7h9FhnNQVFbqiXu2sLp2cmYJAQOIdtcl4ejBTEHHi3hu9nl/fZhx7QbhWnmSUEEkptUxBvOVDY/4A3tzbBQDoHhjF9jbnK9PNNgvanDIQHf3h5ubqkkIUFYZPjKtLPfjnq5bgF9eegroYo0WtQcHUyiLHaUWxxGoctk4fcruE2YcgJbQFc9Goi+xmJVA6FKJOILIbMUtERJStGBTkIXWT8byGcrhcziMg1Z6C7kk0fWhfp888uawp9WB6dbF5nzqWdE+MZuNERpIClr4Co2ehrXcIvpFgo2xFUXCOv14+ZB+YHOweNCcWAdF7IOyCAuuCsvDrKdN3KuKfvmNVYykfSjZLAFgajePYUwBYJxbF97u9vyv8M5yRQJNxiFY+dITlQ0RElDsYFOShePsJAKC40A2PsYV3eCyAwRF/1MfnCzVLcOL0Sm12flMCzcaJjCQFgLnK9J3Qsa1NxkKIuMqHrM3Ke9qdAxh1HGmIU6ZAzUyowUmi6iyZgmT7CYDIE3xrWZc6fSgUQOh9BUlkCmoSf7/qArNdR/rjLlsiIiKaaAwK8pAaFCxojD4CUgihjY6cLCVEbzer/QRV2n1zLA3B0aiZgsoEMwVOQQGAuMqHdluCAGuQoFLHkYYccjiuGoQ0ppApsDYaN9UlN44UAIqU4HXULzE8Fh73OTIWMBequV0CXmMnRzKZAm0caW1xlEfaqy71mMHQ0GgALZxAREREOYJBQR5KJFMA6BOIJksJkTp5aMmMSu2+2QllCuLfUwDEHxSoV+idthpb31u0UqeEMgVpKh+y9hTMSSFTADg3G2ulQx63mfVRy7nsxpja0caRJpEpAKzNxiwhIiKi3MCgIM9IKfFhm5opiB0UVGp9BfmfKRj1B/B+a6/5dbRMQUJBQRzlQ2q/woGuAYz6A7ZBQXVJobmFum/YfnyoNTOwr3PAdvtx39CobbDn2FOQpvIh656CuSlkCgDnK//WJuNYj3cipcSBzuQWl6n0vgI2GxMRUW5gUJBnDvcOm1dFy4sK4ir/0BaYTYJMwY7DfWb5ybSq4ogpOmqm4EDXQNTNtImMJAWAYo8bxxgn2v6ARHPXgFYGdGx98IRSCGEuwgLsS4ismYGRsYDtib5aOqSWODmVJaWrfEj9uXrcLkyrTrwcR+XUbOwbiWwyBqw9BbF/r7sHRs0pRSUed0RPRLzmKxOIdh5mUEBERLmBQUGe0TcZl2sNtE6qipXyocH8zxRYm4ytyrwF5rbeUb/UllmpxvwB8+RUCKDcG9+4TbWM5q0D3ejoD/7MvQX6ibPWbGwp9fENj9mOS7X2GQB66dCJ0ytRYEyj6h4YtW0sV8uHUskUVJd6cMmJUwEAn1kxC+4oU7DiUR5P+ZBjpiB2+ZDaZDyzpiSu/3fsHKtkCnaxfIiIiHIEg4I8s0MpHZofR+kQAFSVTq6xpOr239AmY6t4SoisZSvRRr86HfuFDw6bnzfVl2knzmo9/yFLUOD0nuxub7bM3o/VxKwGG6lkCgDgob89GVvuOB/fuWRxSscBnHcV9NtMHgKsPQWxf6/3Kz+nZMaRhqi7CnYe6Y+5AI+IiCgbMCjIM9ZMQTzURuOjvvzPFGyNkSkA4gsK1DGX8UweCh87fNL4xx3t5udqgyoQXPYVYj15t8sIAPYTiNSgYEZ1CY6pUoMNPQvSPzxmBjueApc2mSoZQgjUlCZXhmOlZmLUHgGfZZux+fgEMwVa8JRCUFBb6jFL8gZG/Gh1aOgmIiLKJgwK8kyik4cAoEo5oe2Oo/Y6lw2N+s2fkRDACdNiBwVOY0l7EmwyDlH3IAyOhq9yH1uvBwVTouwqUAOVufXRl601K2MxZ9SUoLEyXKJ0qFs/rlY6VFGUdAlNJjid5Pc7lA9pPQXxZAo6wz/TmUlsMw4RQujNxodZQkRERNmPQUEeCQSkJSiIb9pLlTaSNL8zBTsO95kTeubUlmolKarZNpuHrfRtxvH1EwDOm33nNui361uN9ZN3NSNw3qIp5ud7Y2QKZtaURM1ApKvJOBPUkaRao3Fc04cS7ylIxbFsNiYiohzDoCCPNB8dwNBocFJOXZkHtZapOk6qS3Knp+Ddlh784pU96EqyzGn7oXDQtGhqhePj4tlqnOg40pDp1cUodEdegbeWD0XbaqxmBM6eX282D7f2DGFAmcYjpdQWaM2oLtGOay0f0nYUpNBknAl6T4FT+VCB7ePjmT6UjnGkIdOqwtmYDl9kQzgREVG2YVCQR9T9BPGWDgF6piCbNxr3Do3ib3+xCff87zZc96s3bWfyx7KtLbyfYGGURuyZtSUIVc4c7B7E8FjklB49UxB/UFDgdkWcdLpEZAbBqSFYSqllBOY3lmvHU4OYjv4Rs0SpvKgAlSWFeqbAkoHQdhRUxBdUjpdyh0yBU6NxZXH8mYLhMb+54VkIYHp1akFBaKsyAIyOsdGYiIiyH4OCPJJMPwGQO5mC91p6zJPBd1p68LvNzQkfQ80ULIySKfAWuM2rvVLqV5FD1EbjRDIFgN5sDASvTHsL3NptalDQ3jds7ks40jcM30j4RL+21KMFFGppkTqOdIZxoquWJVmnGqkZiVS2GWeCesLfG2WjcUh5Aj0FLUcHERoSdExlsbk4Llnq80f8kQElERFRtmFQkEc+VGqX49lkHKJtNB4czdoRirssE3d++PyHcW2qDZFSxp0pAGJPIFIbjROZPgQATfV6VsBaOgQETyxDW4EDEuY+A3XyUFN9GYQQ2vHU96pNHqoJBjnHKKUt1qAgXTsKMqHCcSSp0lOgPEZvNI6eKUhnPwEQXNYWwkwBERHlAgYFeWRnkpkCb4EbJcYVVn9Amltds82uI3pQ0NE/gode2hX38w/3DpuZkDJvAabH2LAbKyhIttHYemwAmGsTFAD2JUTa5CHjOE3K5KI9StBg7ScAgpuGQ/sQunwjGFImIOVMo7Hys9f3RYQzBUWFLrPXYmQsoH2fVunsJwCAQreaKXDeiE1ERJQtGBTkiVF/QLuCHO/koRB1V0G3LztLiKxBAQA88tpex0ZgK2uWINa4zZhBQZKNxtZjA5HjSEPsJhCp5UGhDMEch2lJ6sluaCGX2yUwpTzcL6AGAm1ZXD6U6EZjIYTW6xGtr0DLFKQwjjRELx9iUEBERNmPQUGe2Nfhw6g/WKYwrarYcdSmkyqthCg7m413KkHBLOPEbdQvcc9z2+J6vt5PEDuTEjtToPQUJFo+ZA0K4sgUhE7e1UxAqDdBKx9q95klYFpPQU04M2LXVzDmD6C9LzwpJ/uCgvDP2GkkqRoUBJ9jv/DMKt3lQ1qmYIxBARERZT8GBXlienUJfvP3y3HXZcfh78+ck/Dz1aDgaBY2G/cMjponrJ4CF+67aol534vbDuNPOztiHmO7lilwbjIOSSxTkFj5UH2519z063G7HIOCxhjlQ6FgoL7Ma2787RseQ3t/8GelBgXqye5UZYFZKAPR0T+C0ECn2lJPys226Vbmjb28rMwSFMTbV5Du8iF1+hCDAiIiygXZ9a8+Ja3Y48bpc2vxmRWzcd3KZIKC7F5gppYONdWV4uSZ1bhy2XTztruffd+czuMk3h0FIdOqwvsEjvQNa1ekgeRHkgLB0pa7Lz8OJ0yrxB0fW+yY2WmsDJf5tPUMYWQsoG0oDgUuQgjMqdcnEI35A2hVNharYzbVsaStxq6CbC4dAvQT/v7hMXMkrU8ZSZpMpkBKqWUKZqWhfEjNFIyyfIiIiHIAgwICAFQVZ/dY0t1KUBC6qv6NCxaYIyh3HO7Hf755wPH5w2N+recinulMBW6XWYcPRGYLUpk+BACXnngMnvnHM3DN8lmOj9EajXuGcKDLZ54MT6sqRlFhuLHWunDtUM+Q+dj6cq/2WLtehWyePAQEeyHUkaM+Y0mbttHYEyVTMGifKWjvH9Z3OSTx39LKw0wBERHlGAYFBEBvNM7GBWbqONJQUNBQUYQvnXOseftPXtjhmOXYfcSHMeMEeWZNSUSZiRO1AfiNvV3afdqegjScSNpRy3wO9w7ZNhmHv9YnEOk7CvRJS+pxQz0F2byjIKTcMpZUSmkGBwBQ6nVbHh87U9BsyRLEakCPh7qxmpkCIiLKBQwKCICl0TgLMwXquFW1/v6GlXPMBtrugVH8+vX9ts/fnsB+AtU5CxvMz597p9X8fGQsYF5ddgl9aVY6WXsK1MlC1mZl6wKzli5lHKmlTt42U5DF40hDtK3GQ2MYHPWbfRDeAhcK3PpfaWqw5rTAbH+a+wkAPVMwzEwBERHlAAYFBCAHegpsMgUAUFToxlfPn29+vf6DNtvnb2+Lb5Ox1erjGs2Z/lsOdKO1O3ii3WfpJ0jH1WU7FcUFKCoM/m86MOLHOy3d5n3WsaZq5mBPh892m3HIVJvpQ4e18iEvslGZ5cp/tCZjwHmMqUqfPFRq+5hEedhTQEREOYZBAQEAqrN4+tDQqN9cwuUSkSfD5y2aYpZrvN/aa564q7YdCmcKFiWQKagp9WDF3Frz6/999xAAyzjSBMe/JkIIoV21//PuTvPzJstuA/XncqBrQMsqqONIAaCh3Asj1kFH/zCGx/xZ32gMRJYPRWsyBqw9Bfa/1+mePARwTwEREeUeBgUEwJIpcDh5mii72/thjN3HrNpSeAusdeOFWN4UPnHfsO1wxDG2HUouUwAAl5ww1fw8FBSoTcaJbjNOlHqCrgZs1p6CEk+BmQHwB6QWQFgzBQVuFxrKw8c90juslw9lYaMxAHPsKhAcvRptRwGQeKYgHZOHAD0oGB2TaTkmERFRJjEoIADWnoLI8qFH/rQX3/jdVrQoJSnjRR1HOtdh8+/5i6eYn7+w7Yh2X3vfMDqMuf3Fhe6ErwZfYCkhOtg9qF11Tse0mmjsTtC9BS4cU1kccbsaKHT5wv8drT0F1uMe6hnSy4eyNlMQrXwosq8jrp6CNC8uAyzLy5gpICKiHMCggABYpg/59KDgjzvacfezH+C//9qCHz7/4Xi/NS0ocFrypTYEb9rdqZ0sfqj0E8xvLDdP8ONVXerBymPrzK//8O4hfUdBBsuHAPsT9Dl1pXDZfB/W0iogOMpzqk1god6280gffCPBUhxvgSvjgU6yrI3GiWQK7JaXDY74zaV4BQ4/p2TomQIGBURElP0YFBAA/Wp371B4MRQA/Jcy//+tA91IVs/AKN472AMpEyuniCcomF5dYi4kG/EH8OqOdvM+dfJQIv0EqktOaDQ/f+7dQ/o40gwHBXb1/dbSIfP2usifzzFVRRFTeQA9U/C28t+1sbIoY43TqSrz6j0F/TGCglg9BWrp0LTqYtufUzLURuNhZgqIiCgHMCggAMGryRXKVdVQzXxn/zBeVGr0D3QNYGDEvjY7mp6BUVx4/yu49ME/4Scv7EjouWpQMM8hKACA8xeFswUvKO9Z6ydIMihYvbgRBcaV+bcOdGuBRqZ7CuzKh+xO/gH7YMHaTxCiXhV/uzkcFGRrkzEQWT6kNhpbF5cBelBg11NwIAOlQ0DkRuNEA2EiIqLxxqCATNWlkWNJn3rrIEb9+gnNzsP9SNSTb7WYoy+f3HIw7ueN+gPaJuG5UYKC85S+gpe3H8GYcYVW21GQYJNxSHWpByuUEqKn3gp/DxORKbArEwLsgwXnoCDck6COfM3WfgLAMpI0jkZjNWCz6ynY3xn+3UpnUOB2CbNMTUqYi/OIiIiyFYMCMlVpW41HIaXEf/+1OeJxHyqLxOL127+2mJ8f7B4067hj2d85YJ5QTa0sirqJ+PhjKjGlIjhf/+jAKLYc6MaYP6AFMYsakwsKAOBSZQqRetU5U9uMQ2wzBQ7lQ9Oqi7V6diByHGmImilQL2Rn6+QhAFo2q29oDH1qo3FR5O+G+vvSPzyGgOXkvDlDmQJALyEaYV8BERFlOQYFZKoq1icQvdPSgx02WYEdbYkFBe+39uADZU8AAG0JVzTx9BOEuFwC5ywMZws2bDuMvR0+c/rLMZVFqCxJ/gR+9XFTzBIiVaabchvKvbCW+DuVD7ldArMtYzXtJg8Bzif/2V0+FP5ZWxuN7aYPFbhd5rZpKYF+S+lbJsaRhoR2ZwBcYEZERNmPQQGZqrWxpKN4QskS1JeHN9wmmilQswQhW5vjCwp2O2wydnL+Yr2vYFuSm4ztVJXoU4hCMt1TUOh2obY0/POvLfVEDW6spUXTHcqHGsqLIoINIMvLh7Q9BaMxy4eAyIVnKnUcqVPwlCyPsk+DmQIiIsp2DArIpJYPtfUO4Zm3W82vb1093/x8RwJBwchYAOvejuwh2NrSE9fzE8kUAMCKuXUoLgyejO1p9+F/3zlk3pdsk7HqkhOnRtyW6Z4CQC/1cSodCt+v/5ycymI8BS7UlXkjbm+sjLwtW1iXkel7CuyDAq2vQJlAFAhItHSFt1+nv3woHHFxVwEREWU7BgVkUheYPfGXZrNee3ZtCT6xdLpZq364d9h2wZmdl7YfNrfwqttot7Z0xzWRZeeRcAByrMPiMlVRoRtnzgtfzf+/99vMz1PNFADA6sWRJUSZ7ikA9JIep9Kh8P3hoKG40I26Mo/jY4+xKSHK5vKhsmh7CmymDwHOmYK23iHzZL2m1KM9Lh3U3g5mCoiIKNsxKCCTusBMrbX+5CkzUOB2aeNA7XoN7KilQ59ZMdusv+8eGEWzcpXWTiAgsftIeDpMPJkCQJ9CpEp2R4GqqsSDM+bpJUTjkSmYXh1uFp7bED1ToE5omllTEnXngF1fQUN59gYF1hGj6khSp/IhtTlZzRS8vrvT/Dzd/QSAdSwppw8REVF2S1tQIISYLoR4RAjRKoQYFkLsE0LcJ4SoTvA4Ncbz9hnHaTWOO93h8VcKIR4UQrwqhOgVQkghxOMJvua/Gc+TQohjE3luPqmyqVN3CeDKZcEf/YIp4ZPqePoKjvQNYaOyROyTp0zHidMrza/fjtFs3NoziMHR4ElfdUkham1KXeycs7Aholbe43Y5jvFM1MUn6CVEme4pAIBPnToDDeVeM2sTzZLpVVi1oB5FhS587qymqI9Vx5ICQF2ZJ2J6UTbxFrjMBt4RfwBdSsbKqXxIyxQMB4MCKSUe+dNe8/bzFtkHkqlgpoCIiHJJWs5mhBBzAbwOoAHAOgDbAZwK4GYAFwohVkopO6McInScWuM48wG8BOC/ACwEcD2AS4QQp0sp91iedjuAkwD0A2gxHp/Ie/8YgBuN58d3KTpPqT0FIR9d0GCWk8xXrrTHM4HoqS0Hzc3Ip86pwazaUiyZUYVXd3YACDYbX3bSMY7P15eWxX+Vv67Mi5NnVGGLsqV33pSytG2rvWBxI24veA8jYwHUlHrMHoZMWthYgde/dQ7cLhFz27DLJfCr60/FyFgg5gm+NVOQzaVDACCEQJm3wCxJO2zsvgCAUpvpQ4C1pyBYPrRpT5c5Eauo0IWrT52Z9veqBQXsKSAioiyXrkuCP0MwILhJSrlGSvktKeU5AP4ZwAIA98R5nHsRDAh+IqU81zjOGgSDiwbjdaxuMZ5TAeAfEnnTQoh6AL8A8ASAzYk8Nx9V22QK/uaU8FXpRDIFUkr8bnO4dOiTRrbhxOlV5m2xxpKqQUG0pWV2rCVEC1PYT2BVWVKIH33yJCxvqsE9a46PeZKeLgVuV0KvFc8V/6mWoCCbJw+F6Ff+Yzca6z0FwWDikdfCWYIrlk7XFvelSyH3FBARUQ5JOSgwsgSrAewD8FPL3d8F4ANwjRAiau2GEKIMwDXG49da7n4IwH4AFwghtHoIKeXLUsqdMp6u1Uj/anz8UhLPzTtVxfqJUW2pR5v7r2UKDvdFbRTe2tKDncZJfYnHbZbcnKSUD717sMfcOmwn0clDqvMt5SCLpqbeT6C67KRj8F+fOx0XnRA5jSiXWMuHpmTx4rIQp5N/556CcFDQOzSGfR0+vLjtsHnbDSvnpPcNGrwFak8BgwIiIspu6cgUrDI+rpdSav/ySSn7ALwGoATA8hjHWQ6gGMBrxvPU4wQAPG95vZQIIa4DsAbA5+MpbZoMqkr1TMHHT56mXW0+prLInCDUPTCKI1G2Ev9W2XFwyQlTzRO2hooi8+r00GggasNyKkHBsQ1lWvPoojRMHspHuZkpiDz5FyIYfMZ6fN/QKB59fZ+5wfmjC+oT/t2KFzMFRESUS9IRFCwwPu5wuH+n8XG+w/3pPk5MQohZAO4H8LiUcl2qx8sX5d4C7erm33xkhna/EELLFnzo0FcwNOrH01vDOw5CjcohJ8VRQiSlxK52tacgsRM3IQS+fsEClHqCI0qXN9Um9PzJoqFCb97OjaAgssyt1FPgWFqljoxtOTqI/1YC1hvPyEyWAAg2t4ewp4CIiLJdOoKCUD2I0zaq0O1VDven+zhRCSFcAH6NYGPxTSkea7PdHyTY7JwthBD43FlNKHAJfHr5TMyfEllyo97mtMRs/UjKvfEAACAASURBVAeHzXnws2pLcOqcGu3+k2aE/xNudQgKOn0j6DaaSUs97ogr2vG49MRj8M7aC/DYjafB7Rqfuv9c4y3Q9xjkQvmQXabAqcnY+vhXd3ZgYCQ40WrBlHKcYbOhOl0KWT5EREQ5JPOzFLPPLQDOBnCJlPLoRL+ZbPO11Qtw07nztNIH1YIp4Sv2TpkCtXToyqXTI67gqn0FW5vtY8Cdh/Um42SbeRkMxLagsRwduzrhEsDcGNuSs4F9UOD8V5nTHokbzpid0SZxNVMwzPIhIiLKcukICkJndZUO94dujz5qJn3HcSSEmI/gJKRfSSn/N9njhEgplzm8zmYAS1M9/kRxCgiAyGZjq7aeIby2KzhyVAjgimWRM/WPn14JIQApg1OMBkf8KLbUg6ulQ/FsMqbk3X7JYjz08i6ccWwdplenf4lXutk1Gjs1HwP68rKQmlIPLl8yLa3vy8pTEA44mCkgIqJsl47yoQ+Nj061/vOMj069Auk+TjSLAXgBXK8sK5NCCIlg9gAAdhq3rUnhdfLWAq18qB+BgD6BaN3bBxG66fSmWkyr0qfbAMErt03GIjF/QOL91shswe4UxpFSYhZNrcBPr16Kv83ArP5McOopSOTxnz5tJooyvF/Cw0ZjIiLKIenIFLxsfFwthHCpE4iEEOUAVgIYALApxnE2ARgEsFIIUa5OIDL6AFZbXi8Z+wD80uG+SwA0AvgtgF7jsWRRW+ZFXZkHHf0jGBz1o+XoIGYaU36klHhyy0HzsVdE2bx70owq7G73AQiOLz1ltt53sL2t1/w80SZjym8Jlw9ZNk573C58+vRZaX9fVmrGjZkCIiLKdilnCqSUuwGsBzAbkfP+7wJQCuAxKaUvdKMQYqEQQmvGlVL2A3jMePxay3G+bBz/eZuNxom817ellJ+1+4NwpuI247a3k32dfDffYYnZB4d6za+LCl248PhGx2MsUZuNm/WKsE17OrFpT5f5NceJksouKLC7LaS40K31lnzspGPQUJ75hmptozEzBURElOXS1Wj8RQCvA3hACHEugG0ATkNwp8AOAN+xPH6b8dHa5XcbgI8C+KoQYgmANwEsAnA5gCOwWTJmlPmESn1CZ6GnCyEeNT7vkFLemtR3RbbmTynH67uDqx12HO7D+cb2YDVLcOFxjVHrvNXNxuoEouExP2576l3tODNqsr/OncZPotOHhBCYUu5Fa88QgMyOIVVpQYE/md2KRERE4yctQYGUcrcQ4hQAdwO4EMDFAA4huAvgrnin/EgpO4UQpyO4CXkNgDMBdAL4FYA7pZQtNk9bAuAzltuajD9AcBMyg4I0WmCzq2DMH8C6t8O7CT4epXQICG4YLnQLjPol9ncOoHtgBFUlHvx84x7sMcqKyrwFWHvZcRn4DiiXlXltegqiBKAA8I0LF+KBl3bi40umYfEx45N54vIyIiLKJWkbSSqlbAZwfZyPdZwDKKXsAnCz8SeeY61FZLlRwqSUH031GJOF3a6CV3d1oKM/uOG4odyLlXOjLwvzFrixaGoF3mkJNhlvbenB9Opi/PTlXeZjvn7BAjTmwNx8Gl92mYKyKI3GALDm5GlYc3Jmpw1ZebmngIiIckg6pg/RJDNf2VWwu70fo/4AnlJKhy5fcgwKoow1DVE3G29t7sZ3nnrX3Px60owqfHp55ptBKfck2mg8UZgpICKiXJJ9/5JS1isvKsS0qmIc7B7EqF/i3YM9eP79NvP+aFOHVCcqS8x++ae96BkMbjB2uwS+//ETuHiMbJXblA9F61+ZKB5mCoiIKIcwU0BJUbMF97+409zYurCxPO5pQeoEolBAAACfPWPOuNV9U+4pY6aAiIgo7RgUUFLUzcZ/3NFufv6JOLMEANBUXxZxhXdaVTFuPm+ewzOIgpmkEssG7GjThyaKmikYZqaAiIiyHIMCSoq62TjEJYL9BPFyuwSOn6ZnBP7fmuNREqNplMjaV5CV5UPucPnbKDMFRESU5RgUUFLm2wQFZ8yrR0NFYtOCls2qNj+/5MSpWLWwIeX3RvmvvEjvK8jG8iF9TwGDAiIiym7Z9y8p5YRjG8rgEkBA2cl0RRIjH69bMQfvt/bC43bhe5cfn8Z3SPnMmhnIxkyB2lPARmMiIsp22fcvKeWEokI3ZteVmovGSj1urD5uSsLHqS/34tHrT03326M8Zy0fyspMARuNiYgoh7B8iJKm9hVcePxU9gLQuIkMCrKv0bhQKx+SUR5JREQ08RgUUNIuOmEqgOAV0etXzp7YN0OTirqroNAt4C3IvqCAmQIiIsolvLRLSbvspGPQVFeK8qICzKotnei3Q5OIminIxtIhAPByeRkREeWQ7PzXlHLG8dMqYz+IKM3UBWalWVq2xuVlRESUS1g+REQ5Rx1Jmo2ThwB9JCkzBURElO0YFBBRzilXAoGyouwMCpgpICKiXMKggIhyTi70FGjLyxgUEBFRlmNQQEQ557SmWpR4ghOHVi2on+B3Y0+bPsTyISIiynLZeYmNiCiKmlIP/vj1VTjYPYiTpmdns7uWKfAHIKWEEGIC3xEREZEzBgVElJPqy72oL/dO9Ntw5HYJuAQQkICUgD8gUeBmUEBERNmJ5UNERBlizRYQERFlKwYFREQZok4gGh2TE/hOiIiIomNQQESUIepW42G/fwLfCRERUXQMCoiIMkTLFPiZKSAiouzFoICIKEO4q4CIiHIFgwIiogzxaJkCBgVERJS9GBQQEWWIWj7ETAEREWUzBgVERBmilg8NMyggIqIsxqCAiChDWD5ERES5gkEBEVGGsNGYiIhyBYMCIqIMKXQL83NmCoiIKJsxKCAiyhBmCoiIKFcwKCAiyhBt+hAzBURElMUYFBARZQgzBURElCsYFBARZYg+fUhO4DshIiKKjkEBEVGG6JkC/wS+EyIiougYFBARZUghMwVERJQjGBQQEWWIlilgozEREWUxBgVERBmi9hSw0ZiIiLIZgwIiogxhpoCIiHIFgwIiogxhpoCIiHIFgwIiogwpdAvz81FmCoiIKIsxKCAiyhBPgdv8nJkCIiLKZgwKiIgyRM0UsKeAiIiyGYMCIqIM0ZeXMSggIqLsxaCAiChDPNryMgYFRESUvRgUEBFlCDMFRESUKxgUEBFlSKGWKZAT+E6IiIiiY1BARJQhzBQQEVGuYFBARJQh3GhMRES5Im1BgRBiuhDiESFEqxBiWAixTwhxnxCiOsHj1BjP22ccp9U47nSHx18phHhQCPGqEKJXCCGFEI9HOf48IcQ3hRAvCSGahRAjQojDQoh1QohViX7fREROuNGYiIhyRUE6DiKEmAvgdQANANYB2A7gVAA3A7hQCLFSStkZx3FqjePMB/ASgP8CsBDA9QAuEUKcLqXcY3na7QBOAtAPoMV4fDTfA3AVgA8A/C+ALgALAFwG4DIhxM1SygdiftNERDEwU0BERLkiLUEBgJ8hGBDcJKV8MHSjEOInAG4BcA+AL8RxnHsRDAh+IqX8mnKcmwDcb7zOhZbn3IJgMLALwNkAXo7xGv8H4AdSyrfUG4UQZwN4AcAPhRC/lVIeiuP9EhE5KuRIUiIiyhEplw8ZWYLVAPYB+Knl7u8C8AG4RghRGuM4ZQCuMR6/1nL3QwD2A7hACNGk3iGlfFlKuVNKGddoDynlo9aAwLj9jwA2AvAAWBHPsYiIomGjMRER5Yp09BSE6vDXSym1f/WklH0AXgNQAmB5jOMsB1AM4DXjeepxAgCet7xeJowaH8cy+BpENEkUuoX5OTMFRESUzdJRPrTA+LjD4f6dCGYS5gPYkOJxYBwn7YQQswCcC2AAwCtxPmezw12x+hqIaBLwut3m58PMFBARURZLR1BQaXzscbg/dHvVOB0nYUIIL4D/AOAF8A0p5dF0vwYRTT6FBcwUEBFRbkhXo3HOEkK4ATwGYCWAJwD8KN7nSimXORxzM4ClaXmDRJSzOJKUiIhyRTp6CkJX8Csd7g/d3j1Ox4mbERA8DuCTAP4bwKfjbVgmIorF7RIQRrIgIAF/gH+9EBFRdkpHUPCh8dGp1n+e8dGpVyDdx4mLEKIQwG8AfArAfwK4WkrJBmMiShshBLMFRESUE9IRFIT2AqwWQmjHE0KUI1iWMwBgU4zjbAIwCGCl8Tz1OC4Em5XV10uaEMID4LcIZgj+HcA1Ukp/qsclIrLSggL2FRARUZZKOSiQUu4GsB7AbABfstx9F4BSAI9JKX2hG4UQC4UQ2oQeKWU/grX9pYjcU/Bl4/jP22w0TojRVPwUgMsB/BLA9dZRqkRE6cJdBURElAvS1Wj8RQCvA3hACHEugG0ATkNwp8AOAN+xPH6b8VFYbr8NwEcBfFUIsQTAmwAWIXgCfwSRQQeEEGsArDG+bDQ+ni6EeNT4vENKeavylJ8DuBhAB4CDAO4Uwvo2sFFKudHxuyUiipMaFHACERERZau0BAVSyt1CiFMA3A3gQgRPug8BuB/AXfGO+JRSdgohTkdwE/IaAGcC6ATwKwB3SilbbJ62BMBnLLc1GX+A4CZkNSiYY3ysA3BnlLezMZ73TEQUTSF7CoiIKAekbSSplLIZwPVxPjbi0rxyXxeAm40/8RxrLSLLjaI9/qPxPpaIKFVa+RAzBURElKXS0WhMREQOmCkgIqJcwKCAiCiDmCkgIqJcwKCAiCiDPO5wteQoMwVERJSlGBQQEWUQMwVERJQLGBQQEWWQ2lPAkaRERJStGBQQEWWQh43GRESUAxgUEBFlUKFWPiQn8J0QERE5Y1BARJRBXmYKiIgoBzAoICLKIPYUEBFRLmBQQESUQdr0IWYKiIgoSzEoICLKIAYFRESUCxgUEBFlkFo+xD0FRESUrRgUEBFlEDMFRESUCxgUEBFlkMctzM/ZaExERNmKQQERUQYxU0BERLmAQQERUQZxJCkREeUCBgVERBmkZQoYFBARUZZiUEBElEHa9KExOYHvhIiIyBmDAiKiDPIyU0BERDmAQQERUQZpPQVsNCYioizFoICIKIM8XF5GREQ5gEEBEVEGFXIkKRER5QAGBUREGcRMARER5QIGBUREGcTlZURElAsYFBARZZCHy8uIiCgHMCggIsogZgrS5+UPj2Dt0+9jT3v/RL8VIqK8UzDRb4CIKJ8VuoX5OTMFyevyjeAfHt+ModEAPmzrw28+t3yi3xIRUV5hpoCIKIOYKUiP9w72YGg0+PN7r7Vngt9N9pBS/n/27jtMrru+F//7O21777taaaXVatUsWZaM5V4RpjvXGJxLHIeaUA0EAhfIxRAI3F8IGAfDzYUAwaEXE2xw75Ys25JlyVaXVtL21fbeZub7++OcOfM9M2dmztQt8349j5+d2Zk5M6vm8zmfBim5KZuIksdMARFRGpmnD/HkLVEn+saN2+MzXkzMelGYk93/C/vp82fx9T8fw5zPj3y3E/k5TuR7XMhzO9FQlodP3rAOG+uLF/pjEtESkd3/ohIRpZk5U+BbwE+ytJ06b+4j6B2dxtrqogX6NAuvc3gKX33gqDHmdnzWi/FZL4BZAMCRnjHMzPtw7/suWcBPSURLCcuHiIjSyG2aPsRMQaLUTAEA9IzOLNAnWRy+9ciJmHsv2oemMvRpiGg5YKaAiCiNTJkCNhonREqJkyGZgmwOCo50j+G+V7qM+z9//yXYVF+CqXkvukdmcPP39wDQyqyIiOxiUEBElEYuR3D6kM8v4fNLOJXvUWznx2fDTnB7RrI3KPg/Dx1DoLf4+vXVuGxtJQCgBG6U5XuM543PzENKCSH4542IYmP5EBFRGgkhTNkCjiUNmpn34Z4nT+Hfnz4Nnz9yaVVo6RAA9I5Np/OjLVp7Tg3g6RP9AACHAP7hxvWmx3NcDmMM7rxPYpYTr4jIJmYKiIjSLMfpMMaRznr9yHU7F/gTLQ73HejCvzx8HABQVuDBO3c0Wj7vZF/4srJsLB/y+yW+8dAx4/7NF61Aa6252VoIgaJcN4Ym5wBoJUT880ZEdjBTQESUZm5mCiypJ/vPnhyI/LzzFpmCLAwK/vRqDw51ajsaclwOfGrXOsvnFeUGr/eNz8xn5LMR0dLHoICIKM1MuwpYzmFQT1gPtA9HfJ5VpqB7JLvKh+a8fnzzkePG/fdcvhp1JXmWz1X3N0zMstmYiOxhUEBElGZuV7DRk5mCIPWEtXN4Gv3js2HPsZo8BABjM15MZtEJ7y9ebMe5QW3EaEmeGx+6ujnic82Zguz5NSKi5DAoICJKM2YKrIVexX6lYyTsOf3jsxid1jIKhTkuNJYHr473jmVHCdHErBd3P37SuP/Ra9eiJN8d8flFucHHWD5ERHYxKCAiSjN1gRl3FQSNzYQGBeElRGqWYG11oalkJlvGkt7z5CkM6o3DDaV5uO3SVVGfX5TDTAERxY/Th4iI0izHxUyBlYmQq9hWmQJ1HOm6mkLTr1/P6PLvKzjeO44fPNNm3P/7XetiThNi+RARJYJBARFRmqmZgnlf5Hn82Sa0fOhgx2jYcjc1U9BSXWRcMQeW/wQiv1/iC/e9Cq++w+HipjLcdGFDzNeZy4cYFBCRPSwfIiJKMw8zBZZCT1gnZr043W9uKj6lTB5qqSlEXUmucb97mQcFv97XgX3ntJIql0Pga39xARw2tmEX5qrTh9hTQET2MCggIkozc6aAQQEA+PwSU3O+sO+/0h4sIZJS4oSyo6Clpgi1SlDQu4zLhwYnZvH1B4OLyj541RqsqymK8ooglg8RUSIYFBARpZmaKZhd5pmCx4/24e3ffQ4/fLYt6vMizc8/oDQbD0zMYWRKu9Jd4HGiviQX9Wqj8TLOFHztz0eNqUuN5Xn42HUttl/L8iEiSgSDAiKiNPNkyfQhv1/is787hIOdo/jGg8cwOhW5dCXSqMwDSqbgpNJkvLamCEIIc6YggZGkfzrUgw/+dB/2tg3G/dpM2XN6AL9/ucu4/09v34w8T/TmYpVp+lAW7XIgouQwKCAiSjM1UzC/jDMFh7pGMTChNQJ7/RL9E+HLyALUTEFDaR6EXip/om/cWEpmbjIuBABUFHjgdmpPHpmax7RFCVIkk7NefOa3B/HIkT58/vev2n5dJs16ffjifa8Z99+8pQ7XtFbHdQxz+RB7CojInpQFBUKIFUKIHwkhuoUQs0KIs0KIu4QQZXEep1x/3Vn9ON36cVdEeP47hBD/JoR4VggxJoSQQoj/svE+lwkh/iyEGBJCTAshDgkhPiGEsH85hojIhmzJFDx1/Lzp/liUE9IJpaylpjgHrXq9vF8ChzpHAQAnz5vHkQKAw2HOFsQzlrRjeMroY2gbmFyUTd//96k2tA1MAtCu+H/pLRvjPgbLh4goESkJCoQQzQD2A3gPgBcBfBtAG4A7ADwvhKiweZwKAM/rrzutH+dF/bj7hRBrLF72RQAfBXAhgC6Lx63e5+0AngFwFYD7AHwXgEd/v1/aOQYRkV1uV3BizHJuNH7qeL/p/th0tPKh4MlqYa4bFzaWGvcD+wpO9JnHkQbUFStbjePoKwhddta3yDYinx+fwT1PnTLuf+bGVlQX50Z5hTXT9CEGBURkU6oyBd8DUA3g41LKm6SUn5NSXgftJLsVwNdsHuefAawD8C0p5fX6cW6CFiRU6+8T6pP6a4oBfCjWGwghigH8AIAPwDVSyvdJKT8DLah4HsA7hBC32vy8REQxeZzBBORivDqdCkOTczjYaV4+FrqxWKXWuhfluExBwYF2rdn41HnzONKA2gTHknaHZBUWW1Dw4pkh48/HxrpivPuS6JuLI2H5EBElIumgQM8S7AJwFsA9IQ9/CcAkgNuEEAUxjlMI4Db9+XeGPPxdAOcAvCE0WyClfFJKeVJKaXcj0DsAVAH4pZRyn3KcGWhZB8BGcEFEZJeaKViu5UPPnuxH6L/C0TIF6hXsolwXtq0MVpq+0jGCgYlZDOmLyvI9TtPUoboEx5KGZgoSaVROp+O9wXKpK9dVmpa4xaPQEwwKJud88Pm5MI+IYktFpuBa/esjUkrT/+2klOMAdgPIB7AzxnF2AsgDsFt/nXocP4CHQ94vUdfpXx+yeOwZAFMALhNC5CT5PkREAIAc5/JfXhZaOgRE7ylQr2AX5riwtroQBfqEnfPjs3jmRPB4LdWFpqVddaaegsQzBYttI7IaFLTa3ElgxeEQKMxRF5ixhIiIYktFUNCqfz0R4fGT+td1GTpOLBHfR0rpBXAGgAuAVf+CiRBiv9V/ANYn+RmJaBlZ7svL/H5pOokPGJuOfDKqnqgW5rrgdAhsWREsIfr1vg7j9tpq8wlybUlqegoWW1BwQhnB2lqbeFAAsISIiOKXiqCgRP86GuHxwPdLIzye6uPEkqn3ISICYB5JuhwzBa91j2JQL/VRRc8UqOVD2rScC1cG/9nd2zZk3Fb7CQBzpiCenoLQSUWLqXxoas6Lc0NTAACHAJqrCmO8IjpuNSaieLliP4UikVJut/q+ni24KMMfh4gWKXOmYPnVd6ulQwUeJyb1sZ92pw8Flm1ta7S+FrMuNCgojb+nQEoZVmq0mDIFp85PGD0ZTZUFyHUnNx2b5UNEFK9UZAoCV9ZLIjwe+P5IhMdTfZxYMvU+REQAzJmC2WWYKVD3E+zaVGvcjjZ9aGJW6SnQr2qrmQJVS0j5UGVBDlx6j8Hw1Dxm5mMvMBuanAv7tV9MmQK1n2B9kqVDQOiuApYPEVFsqQgKjutfI9X6t+hfI/UKpPo4sUR8HyGEC8BqAF5oexaIiJLmWcaNxiNTc8ZeASGAN19QZzw2Gm360Kx5+hAAVBfloqE0z/S8PLcz7HsOh0BNcXzNxlbP6RubgX+RTOZRg4J1STQZB7B8iIjilYqg4En96y4hhOl4QogiAJdDm+izN8Zx9gKYBnC5/jr1OA5oY0/V90vUE/rXGy0euwrapKQ9UsrZJN+HiAiAOVOw3BqNnzk5gMB59dYVpWiqzDceG7e7vEwpdQnNFqwNmTwUUF8a31bj7pHw58z7JIamwnshFsLxvtRMHgpgUEBE8Uo6KJBSngbwCIAmAB8JefjLAAoA3CulnAx8UwixXghhmtAjpZwAcK/+/DtDjvNR/fgPSymTvYL/WwADAG4VQuxQPlMugK/qd7+f5HsQERncyzhToJYOXdNaheK8YNlKtEbj0D0FAaF9BaFNxgHxTiCKlE1YLH0FqZw8BISWDzEoIKLYUtVo/GEAewDcLYS4HsBRAJdA2ylwAsAXQp5/VP8aevnn8wCuAfApIcSFAF4EsAHA2wGcR3jQASHETQBu0u8GilkvFUL8RL89IKX8dOD5UsoxIcQHoAUHTwkhfglgCMDboI0r/S2AX9n9wYmIYlmumQJtFOmAcf+a1moUKyejY9NeSCkhRPiVftNGY+U1F4YGBdXWJ8jx7ioI3VEQ0Ds6g80NkVrMMmNkag59Y1py2uNyYFVF1F2fthTlcCQpEcUnJUGBlPK0ftX9K9DKct4EoAfAdwB8WUo5bPM4g0KIS6FtQr4JwJUABgH8GMD/llJ2WrzsQgC3h3xvDYJ7Bs4B+LT6oJTyD0KIq6EFKzcDyAVwCsCnANwdx3ZkIqKYTCNJl1FQcKRnDAMT2slseYEHWxpK4HAIeFwOzHn9mPP5Mev1W07SCV1eFrC5oQQuh4BXr0lqqY6QKSiOr3xI3VEQ+HxA9Gbj3tEZ3P3ESTSU5uFvLmtCQU56Bvap/QQt1YUJbzJWFeZy+hARxSdl/8JJKTsAvMfmcyP+iyelHAJwh/6fnWPdifByIzuv2w0teCEiSiu3M/hP3nIqH1JLh65qqTRq/4tz3UawMDY9HxYUzPv8mJnXfh0cAsj3BB/PdTtxcVM5nm8bhMfpwJYV1lfx601jSWNnCtTnbGkowb5z2rWqvihBwbcePY5f79OuRf38hXZ85e2bcP2GmpjvFa8TKe4nAFg+RETxS0WjMRERRZGzTDMF6n6Cq1urjNvFecHrTVZ9BZOz5ibj0PKir/+PC/A3lzXhnndfhGolI6BSewriLR/apjQzR3vtoc7gjsuukWm87z/34UP/tT/lfQjHU9xPALDRmIjix+VlRERpZl5etjyCgtGpebzcrl1tFwK4qkUJCpSr1KPT4SekVtuMVU2VBbjzbZuivn88PQV+vzRlBLatLANwBkDkTIHfL3FmYDLs+w++1otnTw7g07vW4bZLm1JS6mMaR5qqoIA9BUQUJ2YKiIjSzNRTsEzKh5491W+MIt3SUIKKwhzjsVgTiCKNI41HZWFwgdnQ5FzUBWYDE7PGJumyfDdWVQTHpka66t89Om0sOyvNd+OW7SuMxyZmvbjz/iP4+C8PINkWNCmlKShg+RARLRQGBUREaWbOFCyPOQaPHekzbl/dWm16rFgpXRmz2FVgtbgsXs6QBWbRegO6lRP/upI81NkYZ6pmCdZWFeJfbtmKX35wJ5qrgpOB/nSoB3tODyb0+QP6xmaNzc9FuS5TBiQZRWw0JqI4MSggIkqz5bbReHrOh0eVoGDXRnPzrTlTYFU+pEweSjAoAIBa5QS6eyRyUNCjLC6rK8lFWb7byN6Mz3pNPQ4BalCwulILBHauqcCf77gSb94S3Nr8r48cTypbcKx3zLjdWlNkOb41EYW5LB8iovgwKCAiSrOFGkk65/Xjr3/0Iq775lN4rWs09gtsevL4eUzOaeU6ayoLsKm+2PS4eVdB9ExBouVDgDko6B2LPJbUlCkozYUQAjXFwXInq7Gkbf3BoGBNVXAsao7Lic+/aYMR6L3cPmJquI6XOnkoVf0EQHijMSdtE1EsDAqIiNJsoTIFTxzrwzMn+tE2MIkfPXcmZcf94yvdxu23bq0Pu7oda/pQrEZju+ptNhubMwVa6VBdcfQSIqtMQUBDaR7+8nWNxv1/fTTxbMHx3gnj9voUBgU5LqcRjHr90uiPICKKhEEBEVGauReo0VgtqbEz2j588QAAIABJREFUttOO8Zl5PKHsJ3jr1rqw54RuNQ4/RvI9BYB5LGm0MaHqzx7Yb1BTEn3PgRoUrKkK3zD8kWvXGqNmX+saw8OH+8KeY8fxvmD50LoUNRkHqBOIrIIzIiIVgwIiojTzLNBI0qHJOcvbyXj0SJ8R2GyoK8ba6vAT2VjThyZmrbcZx6vOZk+BuqPAyBSYSo/Mr531+tA5PAVAG7e6sjwfoaqLc/HXl64y7n/70RPw++PLFvj8Eif7gpmCVE0eCuCuAiKKB4MCIqI0Uzcae/0y7pPHRA2qQcFUaoKC+w8GS4fetrXe8jkxpw+lKFNQZ7OnoEcJGOr1oECdXBSaKWgfnDLGrTaU5oVtZA74u6ubjW3Mx/vG8cCrPXF9/vahKaOsp7ooB2UFnrheH4tamjXBoICIYmBQQESUZkIIc19BhrIFgxOzxu3hybmkm02HJ+fw7MkB4/5btoSXDgF2pg+lptHYzmhRr8+P8+PBx2pKtAbj2uLImYK2KP0EqorCHLz38tXG/bseOwFvHL+3pv0EKewnCCjMYaaAiOxjUEBElAELMYFILRny+qVlfX88HnytF179Evq2laVotCirAcw9BeMWmYLxFOwpAICqohxjo/DAxBxmveELzPrGZ42r/pWFOchxaVf2a6P0FKj9BM3K5CErH7hyjfEztPVP4g9KE3Yspk3GKS4dAkLLh9hTQETRMSggIsoAtYRo3kazsZQSP959Bt969ETUbb3RhPYRDE7ORnimPXZKh4DY04cmUjR9yOkQqC4KjhbtGw3/+dTJQ4EmYyB0nGlIUNBvL1MAACX5bnzgyjXG/bsfP2m7b0QdR5qOTIFpqzEXmBFRDAwKiIgyIN5MwRPHzuPL9x/B3Y+fxPeeOp3Qew5MmE+Sh5PoK+gbm8HeM9r2XiGAN19gXToEhE8fCi1bGk9RozFg7ivoGQ3vKzBvMw4+t7ooB4FJqgMTs6YT+WjjSK285/ImlOZrP3P70BR+t7/T1mc/rgYFac8UMCggougYFBARZYBbnUDkjV3b/0rHiHH7kcO9cb/fnNcfVs8/OJF4UPCnQz0InNvvXF2BaqUmP1SuOzgjf87nD5uRr2YKktloDJj7CqzGrlrtKAC034/KQi3LICVwfjwYQLUNBCcC2QkKinLd+Nurmo37D9n4/Zr1+kzBR0tN9DKlRLB8iIjiwaCAiCgDzJmC2OVAHUNTxu1jvePoH4+v9McqK5DMWNL7DymlQxdGLh0KiLbVeCJFPQWAuQzIMiiw2FFgvNZiAtHo9DwG9ODJ43KgvjQPdly/odq4fbp/Isoz9eecn4RPb3ZYWZ6PfE9yvw5W1F9bTh8iolgYFBARZYB5q3HsTEG7EhQAwJ7TAxGeac0qKzCYYFDQMTSFA+1a5sLlELhxU23M10TrK1AzGEU5ifcUAMCKsuBJ+6HOkbDHeyx2FASoAUWf3ldwVrl631SRbzQyx7KqIh+Bp3YOT8fsA0l3PwEAFCq/tiwfIqJYGBQQEWVAvD0FHcPm+nh1FKgdVlmB4QSDAjVLcGVLpa15+mqmYFSZejTr9RnLz5wOgVx3cv8bumJtpXH7mRP9YROI7GYKAs8zbTKutF/Sk+NyYkWZNo1JSuDc4FTU5x/rTW8/ARBSPjTL8iEiio5BARFRBrhNmYLoQcH0nC+sXGj3qYG49gxYTRpKtHzo/oPBpVx2SoeAyFuNJ2eDJ+1FuS4IYe9KfCRrqwuxqkI7GZ+c82Fv25DpcXXTsZ1MgWlHQVXsfgJVs/L8WCVEaqZgXZoyBWw0JqJ4MCggIsoAtXwo1sjKzuHwq8w9ozM4rYzKjCVV5UPHesdwtGcMAJDjcuCGDTW2Xhdpq7Ha8Jrs5CFAWwynfqbHjvQZt2e9PmMCk0PANL4UsO4paOuPr8lYtUbZadAWIyhQdxSsZ1BARIsAgwIiogxwu+xnCjosggJAyxbYZZUVSCRT8G9PnDJu37ChxvZegUhbjVO1zVilBgWPH+0zMirq3oKa4ly4nOb/5VktMDOXD8UbFKiZgsgB3NjMPLr0qUhup0BTRXzvY5dpTwGnDxFRDAwKiIgywNRoHCNT0DEU7CdQa+7j6StIRfnQ8d5x/PnVYOnQ3169JsqzzSJNH1InDxUnsbhMtaOpDCV6ENI9OoMjemaj29RkHD5CtabYvMBMShn3jgJVs81MwbGeYJZgbXWRqd8klUzTh7i8bEnx+SW+/egJ3PnHw/y9o4xhUEBElAE5cWQK1MlDb74gWMO/t23Q9rZcq/KheIOC7zx+wthNcMOGGmxZUWr7tZGmD42ncEdBgNvpwLWtVcb9x46cBxAyechitGjoVuO+sVlMzWk9D8W5LpTbaKhWqZmCtv7JiD0gx3rHjNsb0lQ6BJgzMSwfWloePdKH7zx+Ej/ZcxZffeDIQn8cyhIMCoiIMsDtDDbUxjqxV3cUXLWuEg36Ce3ErNdy7KYVq/6B6Xkfpudi70gAgCPdY/jzq8ElXJ+4ocXW6wJCtxoHTKRwm7HqerWv4KjWV6A2GddbZAoKc1wo0j/DnNePl9uHjcfWVBXG3QRdVZhjXJ0fn/VG3C0R6NEAgA11xXG9RzwKPC5ja/PUnA9emwElLTz1z8jvD3TFvaeEKBEMCoiIMsATV09B8Ar3yvJ809hNuyVEkbICVmVFVr7z+Anj9q6NNdjcUGLrdQGmngK1fGgmdYvLVFe3VsGlLwp4tWsUPaPTUXcUBKjZgudPDxq34+0nALSmZ7XZOFJfwVGlfGh9XfoyBQ6HMAVe6uQnWty6lU3cc14//mvvuQX8NJQtGBQQEWWA2+b0ISklOpVMQWN5Pi5vCQYFdpuNByeCJ/9qPf3wZOyG08Pdo3j4cHCKzyduWGfrPVWm6UNK+dBYGsqHtPdzY+eaCuP+40fPo2ck8o6CADUoUBfExdtPENBcGX0sqc8vTZOH0pkpAGBkQoDwJXK0eKn9MABw795zMRfiESWLQQERUQaomYLZKJmCkal5jOuNhXluJyoKPLi8OXiye6B9JGbj4ZzXb5x8O4T5BNdOpuCux04at2/cVIuN9fGfuEbMFMyq24xTFxQAwA0bqo3bjx3tQ/do5B0FAWqzsXplP94dBQHN1WqzcXimoH1oCtP6yV1lYQ4qC3PCnpNK5glE7CtYKtTSN0DL/N13oGuBPg1lCwYFREQZYN5TEHkJmTqOdGV5PoQQqCjMwUb9irLXL/FC22CklwMAhqeCpUPlBR7TiWesZuPXukbxqDLr/444ewkCTD0FysmouXwoNdOHAtS+gj2nBk29GXURMgVWU4mAxDMFa2JkCo6Z+gnSVzoUwAlES4+U0hhZq/qP587A77e/wJAoXgwKiIgywG5PgTqOtLE8eHX7yhb7fQXq5KHyAo9pik6soOCux4K9BG+6oDbh8hbT9KE0Li9TNZbnG4vA5nx+4yTY7RSoLLC+Iq9mClQJlw+pmYKB8KAgU03GAYWmBWYsH0qG3y/j2iqeqMHJOePfiHyP0/h7cur8BJ4+0Z/296fsxaCAiCgD7PYUqONIV5TlG7evUIKC52L0FaglQvEEBQc7RvDYUW2cpxDAHdfH30sQYM4UzBsnU+rV6lT2FAS8fmP4xuXaklw4HNaThGotgoK6klzkexL7bKsq8hF4q87h6bA68KMZ2GSsYvlQavzw2Ta0fPFBfPDe/WkPDNQm45Xl+bj14sbg53iuLa3vTdmNQQERUQaYMgVRgoLQ8qGAi5vKjWOcOj9hbOC1op74VxTm2A4K/u2JYC/Bmy+oQ2sSJ625bqfxeed9EjPz2s88nqbpQwHqduOAumLrfgLA3GgckGiWAAByXE4jmJMSODto7ivIdKZA/TUeZ/lQQl5oG8TX/nwUPr/Eo0f6cPJ85MV0qaAGBfWlefiby5vg1CPN3acGcbh7NK3vT9mLQQERUQaomYLo5UPmyUMBuW4nLm4qM+5HyxYMKOVDFQUeVChBgdX+AgDw+vx46niwNOGO6xPrJVCFZguAkKAgJ7U9BQBwQUMJqovMpUKR+gmA1AcFANAcssQsYGxmHp36uFm3U5g2IKdLUQ7Lh5IxNjOPT/36INTkgFUDeSp1hUzNWlGWjzdurjW+9x/PnUnr+1P2YlBARJQBtjMFQ9aZAgC4fK290aRDSvlQRYG9TEHv2Ay8ehNjZWEOWmqSL22x6itId/mQwyFMDcdA5MlDAFCe7zE1gQPJBwWmXQXKVWV1FGlzVaHpz0S6mDIFLB+K251/PBzW9HtuML1BQWimAADef+Ua43v3H+xG31jkTCFRohgUEBFlgEfZaBwpU+Dzm6eOrCgzn8xeubbKuP3cqYGItc3qiX95obmnYDhCUNA5HPl9E2WVKTCNJE1DUAAAr99YbbofaUcBoAUR1cXmzMKaBMeRBqgZgLaB4AnksQyXDgHmnoIJBgVx+dOhHvz+5fAxoKElYammBgWBbeYXNpZixyotUzjvk/jPPWfT+hkoOzEoICLKAPWqcKRG476xGWNcaUWBBwUh03k21RejNF87yesfn8WJPuva5tDyoXIb5UNqUNAYkqFIlHlXgRdSyrROHwq4rLkSeW6ncT9apgAIbzZeXZlcWY8aVKhjSY/0qEvL0t9kDJh/jVk+ZF/v6Aw+f9+rxn01e3R2YMrqJSljlSkAzNmCn73Qjqk5BnmUWgwKiIgywOMMnqRGyhS0R+gnCHA4BC5uKjfuq02rKlOjcYEHpfkeCD1RMTo9bxmUdA6rU49SlSkwb9Od9fqNoMftFMhJU/lMrtuJN2+pA6AFY1tXlER9vtpX4HIINCb5868J6SkIZHSO9QZ/v9bXZipTwPKhePn9Ep/57UGM6iVvDaV5uOtdFxqPp7t8yNxTEPyz+PqNNUZJ4ej0PJ44dj6tn4OyD4MCIqIMcCvlQ5EyBZGajFXqCeeZAeuTE/P0IQ+cDoGyfKWEaCo8W5CW8qGQrcbm0iE3hLAeE5oKX3rrRnz1ps341Qd3ojrCLoIANVOwsiIfLmdy/2usKswxTsYnZr3oH5+F3y9NPQULUT7E6UP2/OfzZ41dIEIA33rnVmyoKzZGzXaPzoSNmk2VWa8PAxNaT5BDADVK07zTIXDTtgbj/nMx9pUQxYtBARFRBqjlQ7MRMgUdaglPhBPz1RVKGUOEK5aBkwoAKNeXdpXlB08OhyfDy0jMmYIUlQ+FbDVWr1Snq3QooCjXjb/auQrbVpbFfK6aKViTZJMxAAghTM3Gp/on0D40hak57USystCDqiLrZWqpxkxBfE73T+AbDx4z7n/wqjW4ZE0FPC6H6e+FmtVLJXXUcG1xbliAelXIEsNMLFOj7MGggIgoAzw2lpdFmzwU0GSqbQ4PCua8fuPkzyGAUv1qfYWy0VddbhaQjkxBSWimIINBQTwuaw6eaF3TWh3lmfaFjiVVS70yVToEhAYF7CmI5Wd7242gfUNdMT71+uACv1UVwb+TVn/3UqErQj9BwNbGUmPMbNfItKmRnShZDAqIiDLANJI0UqbARvmQqeFxMPxqpWnyUIHH2OQbbSyp1+dHj3KFssHiZCQRppGkM/Omk9J0TR5KxMb6Ytz34cvww7/egb983cqUHFOdQHS6f8K0yThTTcZAyPQhlg/FtP/ckHH707vWIccV7AVqUrJ05yz+7qVCt9JPUGfx99DtdODS5grj/jMn+sOeQ5QoBgVERBngNmUKrFP+6jbjxgglPNVFOcZkndHp+bARo4MhOwoCygsjBwU9ozPw6TsKqopykKtM7kmGqXxo2muqaV9MQQEAbFtZhhs21hibY5OlliG19U+axpFmMlNgnj7kZblJFDPzPhzuDv4+bV9lLj1TMwVn0tRsbJ48ZN0Lc+W64GjiZ9lXQCnEoICIKANiZQpm5n3oG9NO6J0OEXELrxAi6slJaKbAuJ0fOShIR+kQENJoPLN4y4fSobk6NFOQ+R0FgPbnLjDlyeeXmE5Tg+xy8GrXqLHAr7mqAKXK3xnAnKVL1wQiqx0FodS+gudPD2LWy99TSg0GBUREGaBmCqw2Gqsn5nUluabnh1odpa9gcMK8uMy4HaV8KB1NxkDISNLp0PIht9VLlo1VFfnGtJqukWl0DGm/vy6HQHN18s3M8eACM3v2nxs2bl9k0aC+qiL9uwpMPQUR9musqigweo6m5314+dxIWj4LZR8GBUREGZATI1Oglg5FajIOiNZsrC4nq1QCgYrCyAvMOm1MPUqEOVPgNdW0Fy6y8qFUy3E5jb4QtWJnbXWhqU49E4pM+yIYFETyshoUrAoPChrL85SxpNNpuUIfaXFZqKvWqVOI2FdAqcGggIgoA2JlCkxNxjGu1pvHkpqvWA5Nho8jBWDaUzA0Ea18KJWZAvP0IbWnYLmXDwHW403X12auyTgglROIOoamcOr8eOwnLjFSSrzcHgwKQvsJAC3QC5yoS2n+O5uqz6A2Gkdr+L+yhX0FlHoMCoiIMkDtKbAaSWqePBT9ar1pNOJg/OVDocvL0rHNGAi9Qj1vmpNfvMwzBQBMuwoCMtlPEKD+PiQzgWj/uSFc/62nccO3nsHDh3tT8dEWjY6haQzof3eKcl1Ya/F7B5gnEKW6hGhkat7o+SjwOE3Tu0Jd2lxhNMW/1j2KwYnwMcNE8WJQQESUAepGY8vyoSGlhCdG+ZDaU3BmYNI0USbZ8qFUBgW5bqdRNjXvk+gfD564LPfyIcA8ljRg/QIEBaETiBIhpcRXHjhq/Nm9/2B3Sj7bYqFmCbatLDNG+YaKFpAnK3RHQbSN38W5bmxrLAWgZS12nx5M6Weh7JSyoEAIsUII8SMhRLcQYlYIcVYIcZcQIvY6SfNxyvXXndWP060fd0Wq3lsI4RRCvFsI8awQolcIMSWEOCGE+LEQYlO8PzsRUSyxMgXtNnYUBFQV5aDAo9Wlj894TY3Dg6ZtxsFAQC0fGp6cMwIJr8+P3rFgyUK0OuZEqH0Far10Yc7ybjQGgDVV4eVDmdxREKA2GidaPvTokT4c7Ag2tB5RRncuB+Ym49KIz0vnrgK7/QQBphIi7iugFEhJUCCEaAawH8B7ALwI4NsA2gDcAeB5IURFlJerx6kA8Lz+utP6cV7Uj7tfCLEmRe/9cwD/BaAJwO8B/BuAUwBuB/CyEOI6O5+XiMguT8ieAr/fPC/ezo6CAG0sqdpXELxiqQYIFYXBnoJct9MIJLx+ibFp7YqxuqOgOoU7CgLUMiH1Suhi21OQDqFBQUWBB1XK70mmmHsK4s8U+PwS//rICdP3zgxOYnIZLUNTMwVWk4cCTE3+Kc4UxB0UmJqNB7iDgpKWqkzB9wBUA/i4lPImKeXnpJTXQTtBbwXwNZvH+WcA6wB8S0p5vX6cm6Cd4Ffr75PUewshLgbwTgCHAbRKKT8spfyslPJNAN4HwAPgi3H99EREMQghTCVE8/5gtmB0Klhvn+d2orLQE/b6UOaxpMGAQi0NqigwH8e0wEzvK+hIUz9BgJopGJkKXqXOhkbjqsIc0wn5+rqiqCUh6VKUZPnQHw924XifublYSuBY7/LIFkzOenFUXy4nBHBh1ExB+sqHuk1bxa33lKi2NJQYQXfv2AxOnZ9I6eeh7JN0UKBfqd8F4CyAe0Ie/hKASQC3CSGiDmYWQhQCuE1//p0hD38XwDkAb1CzBQm+d+D1j0spQ3N//61/rQIRUYqp2QK1r6A9pMnYzomjVW3zrNdnnPQ5HQIleeYSHXUaUWBKUbomDwUUR9hHkA2ZAiGEqdl4QwY3GavM5UPxBQVzXj++/ehJ475aBnd4mZQQHewcQSBxt666KOKfWUAr7Qv89ewanrbsD0pUaE9BLC6nA5evDWYLnuEUIkpSKjIF1+pfH5FSmv52SCnHAewGkA9gZ4zj7ASQB2C3/jr1OH4AD4e8X6LvfVj/ep0QIvRv3Vv0r4/F+KxERHFzu8wlRAHx7CgIaAppNgaA4cnglfiyfE9Ys6SaOQhMKUpXk3FAcV6koGD59xQAwEalsXhLY+Qr0Olknj4UX0/Br/d1GEFrab4bf3dVsIr3cNfyCAoOtAd7Jaz2E6hy3U7UFWtX8f3S/Hc3WfGWDwGho0nZV0DJSUVQ0Kp/PRHh8cAlhnVpOE7cr5FSvgattGgzgGNCiHuEEN8QQtwP4D8A/BI2y4eEEPut/gOw3s7riSi7RMoUqONI7V6tX21R2zyo7CgILR0CQnYVTAaCAvsNzomINHq0ICezC7wWyoevacaVLZV4544VeNPm2gX5DIUJ9hRMz/lw9+PBLMGHrm7GzjXBNr0jPcsjKLDbZBygBuTnUlhCpAYF0XYUqK5sCWYK9rYNpmWhGmWPVORvS/SvoxEeD3w/1t+0RI6T0HtLKT8lhDgOLTj4sPLQfgD/KaVMbaEgERFCFphFLB+ymSkImZcupTTvKLAICiosegoWIlPgcTkyvtV3oTSW5+Pe912yoJ8h0fKhnz5/Fuf1MbLVRTn460ubTCedx3vHMe/zm/5cLzWhS8tiZQoAYFVFAfboI0BTtatgzus3fq2FAGqKY/cUANqfr9WVBTgzMImZeT/2nx3GZUpJEVE8lu7f5AQJzd3QehC+AqARQBGAKwFIAA8KIT5i51hSyu1W/wE4lq7PT0RLV47Leqtxh3Jibrd8qLLQYzTrTsx6MTg5FzJ5KDwoUAOFwFbjrgXoKciGxWWLiWn6kM2JQWMz8/j+06eN+x+/vgV5HidK8z3GVew5n3/JN7e2DUwaDfCl+W7LLdSh1GbjVGUK+sZmEBgeVF2UY+rdiEXNFrCvgJKRiqAgcDW+JMLjge+PRHg8meMk8prbAXwMwN1Sym9IKTullBNSyucAvBXANIBv6I3PREQpo15R/e4TJ/Hj3Wfw9Il+nBkInljF2mYcoI0lVZqNByajTh4CQoKCyTnM+/zoGVXrmO1dnYyH1VbWbJg8tJiYpw/Z6yn44TNtxsnyyvJ8vHNHo/HYxvpgn8RS31fw8jnzKFI7Tf6mfp44dhXsOT2AG+96Bv/4h9fCRhLH22SsUvsKnuG+AkpCKoKC4/rXSD0DLfrXSHX/yRwnkdcEmomfDH2ylLIX2lX+QgT7FYiIUiLPEyyZ+cMr3fjy/Udw+49eNG8zjuNqfWizsbq4rMJiHn55vrl8qHd0xpi6UlOck5aSHqtMQTZsM15M4i0fmp7z4T+eO2Pc/+TrW0xXrjcpQcFSn0D0stJkvN1G6RAQusDMfqbgGw8ew7Hecdy79xyePH7e9FgiTcYBlzZXIDBT4GjvGPsKKGGpCAoCJ9e7hBCm4wkhigBcDmAKwN4Yx9kL7Sr95frr1OM4oI0eVd8v0fcO/J8y0tjRwPfnIjxORJSQm7evQLQLkZWFOSiI4yr66pAFZmr5kFVPgWlPweRcQg3O8bLqKSjKgm3Gi4lp+pCNoOB0/wQm57QTy4bSPLxta4PpcXWi0uHuSC19S4OaKdhmo8kYMJf4dQ5PW24oDzUx68VrXcFfq1/v6zA93mPaURBfUFCY4zICCSnNgwuI4pF0UCClPA3gEWjbgUNr8b8MoADAvWrzrhBivRDCNKFHSjkB4F79+XeGHOej+vEfllK2JfPeAJ7Vv35KCGEqOxJC/B2AFQB6ARyJ8CMTESXktp2r8Ow/XIsf/PUO/K83rse7djTi4qYyVBR44HE68OFrmuM6XlPIArOBiejlQ6EjSdPdZAxY9w8wU5BZ+R6ncSV5et4X8yRWXcq1oa4YzpDRtpsagv/rPNIztmQ36Y7NzOPEeW0CukMAW1fYCwryPE7U6o3APr80/T2K5JX24C4EAHj86HkMKJk9U/lQSfxlfKGDB4gSkap/mT8MYA+Au4UQ1wM4CuASaHsETgD4Qsjzj+pfQ6+ZfR7ANdBO2C8E8CKADQDeDuA8wk/8E3nv7wF4N4AtAE4IIf4IrefgIgDXAfAB+IiUkvk3Ikq5FWX5+lX5GtP3pZRxb7tdXWleYKY2MluWD4X0FHSmeZsxEClTwKAgk4QQKMxxYUzPEkzMeFFmETQGnFPq5NW+lYD6klyU5rsxom/i7hyeTss423R7pX3EaO7dUFccV5auqTIfvWPa1f2zg5OmEcFWXjo7ZLrv9Uv84UAX3n+ltvchmfIhQPt9eu4UjM9DlIiUTB/Sr9jvAPATaCfkfw+gGcB3AOyUUg7aPM4ggEsB3A1grX6cSwD8GMB2/X2Sem89I3E5tI3HPQD+J4BPQAs+fgPgMinl723/8EREKRBvQABooxEDQhuNrcqHCnNccDu195me9+GkMjkmnl6GeFj1FGTDNuPFRu0rmIgxgUitk2+yCAqEECF9BUuzhMg0inSlvX6CAFNfwUDsk3B1F0LAr17qMLIsyQYFVntLiOKVsn+ZpZQdAN5j87kR/+8npRwCcIf+X8rfW3/+BLRxpF+x+xoiosWmosCDohwXxme9mJzzYVqpJbYqHxJCoLzAg74xrWzhUGfwZC5dPQVWAQDLhzJP/X0YizGB6KySKVhZYX0FfGNdMXaf0q65He4ew42b61LwKTMrkSbjAFNAHmMCkdfnxwElAPE4HZjz+XHy/AQOdo5i64oS02jgxDIFavMzy4coMVm3p4CIaLkQQpj6CgI1y06HQIlF2Q4AlBcEy4rUOuZ0lQ/lup2msiYAKGSjccYVxbHVuF05qbTKFADApnqlr2AJTiDy+6XpRD3eTEFo6V40x3rHjcbt2uJcvHVrvfHYr17qwNiM13g81+1AWX78fz/U3ydmCihRDAqIiJawJota5rJ8DxwO64RseUH4CYcQQF0adhQEhPYVsHwo80zlQ1GCgpl5n1Er73SIiFetl/pY0v3tw0ZwVFnosb0fJCCeK/Nq6dCOpjK86+Lgzof7D3bjdH+wjK++NC+hUsLG8nxjslnX8LRpYzqRXQwKiIiWsNUWV3IrLbYZB6iZgoCaoty07CgICJ1AxKAg89SFceOsAOQCAAAgAElEQVSzkcuH2ofMzefqwj3V6soCIwPUOzZj2pGx2Ekp8fU/HzXuX9VSFfeJuNqA3TE0BW+UiU771KBgVRkubiozegAmZr2mnRDxjiMNyHU7UV+ivdYvgY5hlhBR/BgUEBEtYassar6tmowDrHoN0lU6FBCaKeBG48yzu6vgrNI0uzLKRCGX04H1dUszW3D/oR6jn8DjdOCOG1pivCJcvseF6iItwPb6pakUL9R+ZfLQjqZyCCFwy44Vxvf+/GqPcTtwYp+I0A3nRPFiUEBEtIRZlQ9FCwqsHkt7UJAbWj7EnoJMU3/Nx6IEBWqmoClCk3GAWkJ0pGdpBAUz8z78nwePGfffc3mTZWBth2lPSIQSoq6RaXTri8nyPU6sr9V2s9580Qpjd4S65iGRJuN4Pg9RNAwKiIiWMKv56JUWOwoCrObTp2vyUAAzBQuvqij4Z6I9ygmj2qRqtaNAtRT7Cn74bJtxVb+iwIOPXLc24WOpzb3nIjT37lOyBNtWlsKll2PVFOfimtbqsOfXJ9HbY+fzEEXDoICIaAkry3eH1ewvuvIh9hQsuA36FWoAONob+QTevLgs+hX0jXVLa1fB+bEZfO+p4LqjT+1aZ7lHw65VNrYIq03G21eVmx57547G0Kcn3FMQ+nnOsHyIEsCggIhoCRNChGUL4i0fSvc2Wk4fWngblBP4473jERtjz9kYRxqwvrbYKIE5MzCJqbnoo04X2jcfOY4pffRna00R3mVxUh6PporYC8P2nTU3GauuW18dFqQnUz6k/jvAXQWUCAYFRERLXOgV3WjThxYmU2AOCgpYPpRxZQUe1BZrpSmzXr/lSey8z29qmI0VLOZ5nGiuKgSg1cUf7RlP4SdOrde6RvGb/Z3G/S++ZYNRypMo9ST8pbNDGJ0yT3WamPXimJ6VcQitfEjlcTnwF9saTN+rLUm8fEhtDO8cnuJYUoobgwIioiUutNnYauxoQGhPgRBAXRITT+wozgsGAbluR8Qxl5ReG+qCJURHLE7gu4an4dM34NWV5CLXHXtMranZOIkSIq/Pj0eP9KWlDElKiX964IjR0Hv9+mpc2VKV9HFba4uMwGB8xovvPX3K9PiB9mFjoeD62mLLBnt1Z0FDaZ6tX/NItLGkWlDhl1pgQBQP/stMRLTEqdtVAaAiSqagLN8DdSR7bXEuPK70/q9AzRRw8tDCUUuIjlpMC1KzB9HGkao2pqjZ+N+facMHfroPf3HPHrzWldrA4OHDfXjhjNbw63IIfP7NG1JyXKdD4O93rTPu/2T3WfSMBjMtptKhJuuNyS01RfiHG1uxvrYIX0zB54pnqRpRKAYFRERLXOjoSKsSoQCnQ6BUqfFPd+kQYO4pKGLp0IKJFRTEM440YFN9iXE7mbGkTxw7DwCY8/lxz5OnYjw7Pnc9dsK4fdulq4ySp1R40+Y6XNCg/RrMev2469GTxmP7zgUnD21fZR0UAMCHr1mLhz5xFd54QV3Sn6dJuUAQqc+BKBIGBURES5xa2+xxOmJOVFGbjdM9jhQAaoqD5UyVRZFLmyi9YmYKlAk6K2M0GQeoE4iO9Y5jPspm30iklDjRGyxneuhwb8qWb41OzeOYfmy3U+CO6+NfVBaNwyHw2RvXG/d/s78Dp85rjdwH9AVpgLa0LBNMzc+cQERxYlBARLTEleZ78I7t2obU2y5dBYdDRH2+OShIf6agtaYIt17ciJXl+fjwNc1pfz+ytrqyALlu7X/7fWOzGJqcMz3ePhQ8ibSbKSgr8Bh17HNeP072TcT9ubpGpjE+G5xcJCXww+fa4j6OlUNdwRPzDXXFKM2PnEVL1BUtlbiypRKAVsv/Lw8fx7HecWPSUV1JblKjRuNhGpPK8iGKE/O4RETLwDdv2Yp/fMtGlOTFrtmvUBqRMxEUCCHwjZu3pP19KDqnQ6C1pggHO7Wa/aM9Y7h8baXx+FnTjgL7GaQLV5ai+9VeAMBjR/tMfQZ2HO8Nb3r+zb5OfPKGdaiIsojPjkOdwf6ELStKojwzOZ+9cT2ePfkcAK2HIU9pGI5WOpRqavkQF5hRvJgpICJaJuwEBABw07YGOB0C5QUevH5jbZo/FS0magnREaUx2O+Xpp4Cu+VDAHDj5mAt/B8PdkMGxvzYdLwvPCiY9frx0+fPxXUcK4c6g5mCLQ2lUZ6ZnM0NJXjLluCvwx9e6TZuh+4nSKdV5cFMQcfwdELlXJS9GBQQEWWZGzfX4vn/dR32fO66qIvOaPmJ1FfQOzZjzLUvL/DEten3hg3VxpXxU+cn4t5XoGYKdq4J1t7/9PmzmNZLcBJlyhQ0pi9TAACf3tUKl0XpXqb6CQBtd0RgH4XPL9E1PB3jFZQq8z4/HjvSt9AfIykMCoiIslB1kb059LS8mDIFSlBwLsHSIQDI97jw+o01xv0/HuyO8uxwalDwyRvWGfX3w1Pz+O3+DsvXzPv8GJyYjXrc8+Mz6BmdAQDkuZ1Ym8KpQ1aaKgtw6+vMW5ILPE6sry2K8Ir0UH//zrCEKCPODEzi5u/vwft/ug9P6pO0liIGBURERFlivbLA7HT/hJEdUOvPV9ncUaB629Z64/b9cZQQzfv8ON0fbE7eWF+M912x2rj/g2fPGAvVAp441odLv/44dnztMfz+5U5EcqgjmCXY3FCc9AZjOz5+fYupn2DbyrKMvK9KnUZ2jhOI0kpKiV+/1IE33/2skZX6zG8PhjXxLxUMCoiIiLJEca7baC6f90mcOq+dkJ8bUjMF9iYPqa5aV2X0tHSNTOPl9uEYr9CcGZjEvE876W8ozUNRrhvvurjROFb70BQeek1rYp7z+vFPDxzBe3+yDwMTc5BSCxoiMfUTrEhfP4GquigX778yGNSojdyZwglEmTE6NY+P/vwA/uF3h4xJU26nwAevWmPaBbOUcPoQERFRFtlQV4xOvdb8aM8YNtYXmzMFcZYPAYDH5cAbN9fily9p5T73H+zB9lWxa+mPKaVDrXqZTUGOC7ftXIXv6kvM/t8zp7G5oRgf+8UBU49A4PP3jc2gRq+jVx3M0OShUB/XdyHMev24/bJVGXvfgKYKLjBLtxfaBvHJX72Cbr08DQDWVBXg7lu3YXND5v6spRozBURERFnEqtlYXVyWSKYAAN6qlBA9cKgHXhuTb473BvsaWpXa+9sva4LHpZ2iHOwcxRvuesYUEHiUkpxnTvSHHVdKuSCZAgBwOx34+12t+PybNiDfk/lrr01q+RAzBSn30+fP4tYf7DUFBH/5upV44GNXLOmAAGBQQERElFU2Kn0FR3vHIKV5HGlTApkCANi5pgJV+sbqgYlZ7G0bivkatcm4tSb4uaqKcnDzRQ3G/Zl5LcBwOwX+8S0b8ald64zHnrYICjqHpzE8NQ8AKM51JfwzLUVqpqdjaMpWcEb29I/P4iv3H0GgZaY0343/+1fb8fX/ccGCBICpxqCAiIgoi5gzBeMYnJzDhL5RuDDHlfCYWqdD4M0XqDsLumK+Rt1R0Boypef9V66BUCZ8rqrIx+8+dBned8VqXNNaZXz/2ZMDYSe+5qVlpRAi+pbv5STf40K1Hpx5/RJdIxxLmip/ONAFr9743lJdiIfuuAo3bl4+u14YFBAREWWRxrJ8FHi0CTlDk3N46Uzwiv6qivykTqDfdmGwhOjB13ox6428Z2Bi1ouOIe2E1eUQaA4ZGdpcVYg7rm9BUY4L79i+Ag987AqjDKi1pgg1xdqJ7+j0vKl/AAhtMl7aJR2JUEuI2GycGlJK/HpfcETuB65cg9qS8F6WpYxBARERURZxOATWK9mChw73GrcTaTJWbWssRWO5Nt1ofMaLp4+Hl/YEnFCyBKsrC4weAtUnbliHQ3fuwjdv2YoiZaGaEAJXrwtmC0JLiA4uUD/BYqGWS51js3FKvNIxgpP6tK58jxNvUjZYLxcMCoiIiLLMBqWv4PGjwWVLiTYZBwgh8NYtwWxBtEVmxy0mD0U6ppWr11Ubt9WgwO+XeK0r2MCc7ZmCM9xVkBJqluAtW+pQmLP0ewhCMSggIiLKMmpfQaCfAEhscVkotYTo8aPnMTXntXyeGhQksvX3ipZKOB1awHCoc8RYGNU2MGH8TJWFOahbZiUedjRVcAJRKk3NeXH/wR7j/jt3NEZ59tLFoICIiCjLqEGBKtlMAaDV+7dUa/0B0/M+PHqkz/J55kyB9eeJpiTPjW2NWmmQlMCzJ7VsgdpkvHVFSVY1GQes4q6ClHrw1V4j0FxTWYDtq8oW+BOlB4MCIiKiLLO+tghW58rJ9hQAWrnP25SdBfdblBBJKc2Th2rizxQAMPcVHA8PCrKxnwAwZwo4ljR5aunQLTsal22gyaCAiIgoy+R7XFgdkhXwuByotdgMnAh1kdmTx/vRM2oei9k/MWuU++R7nFhRlpfQ+1ytjCZ95mQ//H5pbjJuzL5+AkDbCh3YGTHvk+hRFm1RfM4OTOIFfUKX0yFM+zOWGwYFREREWSi0hGhleT4cjtRcAW2qLMAlq8sBAD6/xL3PnzM9fqJ3wri9rqYo4ffdXF9i7FUYmJjDwc4RHOlWmoyX+IbZZKgTiNhsnLjf7u80bl+zrgrVKQqcFyMGBURERFlInUAEJL7JOJL3XL7auP2LF9sxMx/cWXCsN3jinmjpEKCNV72qpdK4/4Nn2zDr1UplGkrzUFGYk/CxlzpzszGDgkT4/NIUFNyyTBuMA5bfPCUiIiKKKTxTkHyTser1G2vQUJqHrpFpDE/N479f6cK7Ll4JwP44Ujuubq3CH17R+hYefC24c2FrlpYOBahjSb98/xH8+zNtqC/NQ0NpHupLc3FVSxUuWVOxgJ9w8XvmZD96x7TSq8pCD67fUB3jFUsbMwVERERZKDQoaKpMbabA6RC4/bJVxv0f7z4LKSUAmJqMExlHqrqyJdhXoB8eQPY2GQesUzIwXr9E5/A0XjwzhPsOdOGeJ0/j1h/sxWtdo1GOQL9RGoz/YlsD3M7lfdq8vH86IiIislRXkouSvOCW4JUp2FEQ6l07ViLP7QQAHOsdx962Ifj90rTNONlMQWVhjuWCsmxcWqa6trUK79i+AmX5bsvHpUTEcbEEDE3OmX59lnvpEMDyISIioqwkhMA1rVX471e6UeBxYmsarqyX5Ltx8/YG/NfedgDAj3efQV1JLmbmtbr/ykJPSur+r15XZRpFKgRwQRY3GQOAy+nAN2/ZCgCYnvOhe3QaPSMzeOLYefxo9xkAwP5zwwv5ERe1PxzowrxPSz1d2FhqyrwsV8wUEBERZakvv20T/untm/DLD16KMn2KT6r9zWVNxu1Hj/bhsaPBq6/JZgkC1H0FgLZgqijX+gp5NsrzONFcVYgrWirx3iuajO8faB/mDoMIHlL6U27ZsWIBP0nmMCggIiLKUqX5Htx2aRMuSGOpzdrqIlypTwiSEvjOYyeNx1pr4t9kbOXCxlIU5QaLH7K9nyCahtI81JVoYzUn53w4pjR9k2ZqzosDHcEsyus31izgp8kcBgVERESUVu9VxpOOz3qN2621hSk5vsvpMAIPANia5f0E0QghsH1VmXF/39mhBfw0i9NLZ4eN0qF1NYWoLlq+uwlUDAqIiIgora5eV4XVleEjT1trU5MpAICPX9+ChtI8bFlRgpu3Z0e5R6J2qEHBMuwr6B6Zxhfue9U0PSgee04NGLcva66M8szlhY3GRERElFYOh8Dtl67CnfcfMX1/XU1qMgUAsL62GM999loIkZqtzMvZjqZy4/a+s8OQUqbs183vlynbjJ0IKSU+/osD2HduGD97oR0b6oqxOc6m892ng0HB5WuzJyhgpoCIiIjS7h07GlGYE7wWubI8H/me1F6bZEBgz/raIhR4tFGxvWMz6BqZTslx7917Dlu+/Ag+f9+rKTleIp5vGzRlPx441BPX60em5nC4W9u47RDAJWvKY7xi+WBQQERERGlXmOMyTXFJ1eQhip/L6cC2lcESolSMJvX5Jf7loWOYmPXi5y+0oztFgUa87nnylOn+I0d6IzzT2t62QWMJ3gUrSlGcRVOsGBQQERFRRvzd1c2oK8lFjsuBv9q5KvYLKG12NAWDgpdS0Gx8vHccYzPBJvKOoamkjxmvA+3D2H1q0PS9tv5JnDpvf8KS+vrLmytS9tmWAvYUEBERUUbUFOfiuc9eh+l5n6mUiDJvxypzX0GyXjxjPhlPVUlSPEKzBAEPH+7D2mp7mals7ScAmCkgIiKiDHI6BAOCReDClaUI9AMf7xvH2Mx8Usd7KSSw6BrObFBwpHsMjx09D0DbaP3ha5qNxx45bK+EqHd0Bm39kwAAj8thGt2aDVIWFAghVgghfiSE6BZCzAohzgoh7hJCxPUrKoQo1193Vj9Ot37ciPPFEn1vIcQ7hBAPCyEGhBAzQoh2IcR/CyF2xvOZiYiIiJaSwhwXNtZrI2GlBF5Ooq9ASokXQ0qQMp0puOepYJbgxk21+NurmuHSo56DnaPoGY39efYoWYLtK8uQ63am/oMuYikJCoQQzQD2A3gPgBcBfBtAG4A7ADwvhLBVlKU/73n9daf147yoH3e/EGJNKt5bCOESQvwMwG8ArAbwKwDfAvAYgHUAttv92YmIiIiWIrWEKJlm47ODU+gfnzV9L5NBwen+Cfz51eCUoY9cuxYl+W7sXBM8BXz0SF/M45j6CdZmVz8BkLpMwfcAVAP4uJTyJinl56SU10E7QW8F8DWbx/lnaCfl35JSXq8f5yZoJ/jV+vuk4r2/DOB/6o+tl1J+REr5eSnle6WUGwD8P7s/OBEREdFSZN5snHhQ8NKZ8EblTAYF33/qtDEx6JrWKmMvwa5NNcZzHo5RQiSlNGUKLsuyfgIgBUGBfqV+F4CzAO4JefhLACYB3CaECF9laD5OIYDb9OffGfLwdwGcA/AGNVuQyHsLIWoBfBrAXinlF6WU/tDPIqVMrrCOiIiIaJFTJxAd6BjGvC/slMiWFyyCgu6RacjAmXoadQxN4b4DXcb9j1671ri9a2OtcXtv2xBGpyKf3p0ZmETP6AwAoCjHhS1xLjxbDlKRKbhW//pI6Am2lHIcwG4A+QBi1envBJAHYLf+OvU4fgAPh7xfou/9DgAeAL8UQuTpfQWfE0J8RAixNcZnJCIiIloW6kry0FCaBwCYmffjiL60K15WI01n5v0YmpxL6vPZ8e/PnIbPrwUfl6wuN21rri3JxdbGUgDaHoXHj0UuIdp9Olg6dMmacric2TeLJxU/cav+9USEx0/qX9el4TiJvOZi/Ws+gGPQ+gq+Di0b8YoQ4rdCiPwYnxUAIITYb/UfgPV2Xk9ERES0kNRswb4E+gp6R2fQru8kyHU70FwVLAxJdwlR39gMfr2v07j/setawp6za6O9EqLnldKhS5uzr3QISE1QEMivjEZ4PPD90jQcJ5HXVOtf/wla2dFFAAqhZRP2AbgZ1r0LRERERMvKDlNfQfxLzNSpQ9say9BUoQQFCYwlbeufwBfuexV/OtQT87k/3n0Wc16tUGRrY6llc/AbNgVLiJ4+0Y/pOV/Yc/x+iedPZ3eTMZCdewoCP/MQgLdKKQ9IKSellC8AeBuACWh9CA2xDiSl3G71H7QMBBEREdGippbb7Ds3HHcfgNpkfPHqcjSU5Rn3E8kUfPEPr+FnL7Tjo794Ga91RbrmC0zNefGLF9uN+x+6uhlCiLDnra0uxBo9ezEz78ezJ/vDnnOkZwzDer9BZaEHrTX2Fp0tN6kICgK/Y5E6MgLfH0nDcRJ5TeD241JKU/GclLIHwAvQfl12xPi8REREREvaupoiFOnL5PrHZ9ExFN+J/ItKUHDJ6nKjRwGIPyjw+vxGCZOUkTcUA8Dv9ndidFo7kV9Zno/XK2VCodRswSMWo0n3hJQOWQUX2SAVQcFx/WuknoFAgVekuv9kjpPMayIFKYGCurwIjxMREREtC06HwDalhMiqaTiSkak5HO/TZsO4HALbVpaiXg0K4iwfahuYNMqBAODB13pxom887Hl+v8SPdp817r/n8iY4HZFP5NWg4PGjffCGTFlS9xNc1pydpUNAaoKCJ/Wvu4QQpuMJIYoAXA5gCsDeGMfZC2AawOX669TjOKCNHlXfL9H3fkz/ujnC59ikfz0T4/MSERERLXkXr0qs2fglZbfB5oYS5HtcSZUPWU0/ssoWPHn8PM4MTALQxofesqMx6nG3NJSgpjgHADA8NW98biklBidmTYHQ5VnaZAykICiQUp4G8AiAJgAfCXn4ywAKANwrpZwMfFMIsV4IYZrQI6WcAHCv/vw7Q47zUf34D0sp25J5bwDPAngFwBVCiL9QXyCE+ACADQBOQWs6JiIiIlrWtisTiPafs58pUE+mX7da601YkUT50JGe8KDg/oPdRgAQ8B/PBa/b3vq6RhTq5U+ROBzCtLPgM789iGu/+RQ2/O+HsP2rj2FKbz5eUZaHlRW2BlAuS9F/Fe37MIA9AO4WQlwP4CiAS6DtETgB4Ashzz+qfw3N9XwewDUAPiWEuBDAi9BO0t8O4DzCT/zjfm8ppRRC3A7gaQC/E0Lcrz9vE4A3Qlt4druUMrw9nYiIiGiZubCxFC6HgNcvcaJvAmMz8yjOdcd8nbq07HV6w3JlYQ48TgfmfH6MTM1jctaLghgn7QFqpqA414WxGS/8em/BN2/Zajxnjz4pyCGA2y9rsnXsN2yqxb17zwEAOiOUNV29rsrWsZarlEwf0q/Y7wDwE2gn5H8PoBnAdwDslFIORn616TiDAC4FcDeAtfpxLgHwYwDb9fdJ+r2llIegjSL9KbS9BZ8AsA3Az/T32WPvJyciIiJa2vI9LqytLjTuH7WxxGxqzovDynSgwL4Dh0OgrjTX+H63zWyBlBKHu4PHu/Ntm4zb9x3oQoe+C+FHu4NZgjdursOKMntX9i9ZU276GQPyPU40VxXgbVvrcccN4XsOskmqMgWQUnYAeI/N50bsBpFSDgG4Q/8v5e+tvOYMgL+J5zVEREREy9Gm+hIc69Waeg93j+GSNdEbbg+0j8CrbxJurSlCab7HeKyhNA/nBrWT+M6RabTYGPHZOzZjjAUtynHhpgsb8Ot9HdjbNgSfX+L7T5/GJ25owR9f6TZe894rVtv++dxOB371wZ144cwQCnJcqCvJRW1JLopyXFk7bShUyoICIiIiIlqaNtUX43cva7cP28gUmEqHVpebHmtIYAKRWjq0oa4YDofAx69rwd62FwAAv93XCZ9PYk6fHHRhYym2Kw3SdlQU5uBNF9TF9Zpsko3Ly4iIiIhIsam+2LitlvFEErq0TKWOJbVbPqQGBRv1z3JpcwUuWlkKAJjz+fGrfR3Gc94XR5aA7GFQQERERJTlNihBwanzE5j1Rp63Muf14+X24DjS1zWFZAoSGEuqTh4KBAVCCHzsuvA6//qSXLxxc23Y9yk5DAqIiIiIslxxrhsry7WmXa9f4mTfRMTnvto1ill9ydjK8nzUluSaHl+RQPmQWrK0sS4YoFzTWoXNDcWm595+WRNcTp7Cphp/RYmIiIjIdgnRi1H6CYD4MwVjM/No16cLuRwCLTXBKUFCCHz02mC2IN/jxK2vWxnzmBQ/BgVEREREFBIURG423tsWnPYeWjoEwJQ56BubwbzeHBzJsZ5x4/ba6kLkuJymx3dtrMGtFzeistCDr960GSV5sXcoUPw4fYiIiIiIsKm+xLgdKSiY9/lNm4wvbQ4fXZrjcqK6KAfnx2fhl0Dv6AwayyPvEziiZCU21heHPe5wCHzj5i22fgZKHDMFRERERGTKFBztGYNP30OgOtQ5gqk5rQl5RVlexJP9eEqI1CZjNTChzGJQQERERESoLs5FZWEOAGBqzodzg5Nhz3n+dLB06NIoC87i2VVgmjxUF54poMxgUEBEREREAMzlO1YlRHuUoOCytfaCgmi7CuZ9fpzoDU46YlCwcBgUEBERERGA6M3Gs14f9p8L7ie4dE1lxOPYLR86dX7C2FLcUJqHknw2ES8UBgVEREREBCD6WNID7SPGfoI1lQVh+wlUpvKhKEGB1SZjWhgMCoiIiIgIgLnR90j3GKQMNhurpUM7LaYOqexmCsxNxgwKFhKDAiIiIiICAKwqz0eBR9sTMDg5h76xWeOxvWo/QYygoD6kp0ANLlRHImwypsxjUEBEREREALSdABuUk/MjPVoJ0fScDwc6gv0EO6NMHgKA4lw3inK1dVgz834MTs6FPUdKaSpRYvnQwmJQQEREREQGU19Bl3Ylf9+5Icz7tKv9rTVFxujSaGKNJe0amcbYjBcAUJzrMj2fMo9BAREREREZrDYbq/0EVluMrawoiz6WNLTJWAgR92el1GFQQEREREQG064CvXxIXVoWq3QooD7GBCJuMl5cGBQQERERkWFdTRHcTu2qfcfQNLpGpvFqlxYcCAHsXFNu6zhqOVCnRfkQm4wXFwYFRERERGTwuBxoqS4y7v90z1n4/Fo/wca6YpTme2wdJ9ZY0sPcUbCoMCggIiIiIhP1JP3nL7Ybt2ONIlWFjiVVjU7NG4GCx+lAc1Vhoh+VUoRBARERERGZqBOIxvUJQYD9JmMAWBGlp0DtJ2ipKYTHxVPShcbfASIiIiIysWr8dToELm6y108AAJWFOfA4tVPNkal5TM5qwYWUEr9/udN4HvsJFgcGBURERERksqGuKOx7FzSUoCjXbfsYDodAfWmucb9L32z8lQeO4Df7g0HBFS2VyX1YSgkGBURERERkUpTrRlNFvul78fQTBNSHLDD72p+O4se7zxrfe+vWerxlS33Cn5NSx7XQH4CIiIiIFp9N9SU4Ozhl3I+nnyBAHUv69QeP4kTfhHH/zRfU4dvv3Aqng0vLFgNmCoiIiIgojDqByO0U2LHKfj9BgDqWVA0IbtxUi7tuvRAuJ09FFwv+ThARERFRmK0rSo3bF60sQ5Wzj/cAAAomSURBVJ7HGfcx1ExBwA0banD3X26DmwHBosLfDSIiIiIKc1lzBd65YwU21hXjc29cn9AxQoOC69ZX4553b+MI0kWIPQVEREREFMbhEPj/3rE1qWNsW1mGmuIc9I3N4trWKnzv3RchxxV/xoHSj0EBEREREaVFnseJRz55NU73T2BbYymEYFPxYsWggIiIiIjSpiTPjYtWli30x6AYWNBFRERERJTlGBQQEREREWU5BgVERERERFmOQQERERERUZZjUEBERERElOUYFBARERERZTkGBUREREREWY5BARERERFRlmNQQERERESU5RgU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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 386
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(losses['test'], label='Test loss')\n",
    "plt.legend()\n",
    "_ = plt.ylim()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示训练CTR AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.5037732909102718, 0.5033356474273036, 0.5084760219708363, 0.5019267637224952, 0.5321601132756659, 0.5252598615808791, 0.5342313572791006, 0.5396420063555415, 0.525180670997436, 0.5355885967123546]\n"
     ]
    },
    {
     "data": {
      "image/png": "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+v36IiKllZnt4Z/TVjJ54bYC2z9duI17zmtLbGSoS5GJ+J+/JhrfAcwF3jDGnAusAfrh1DBYDzxSaP813tf8A/POBt4xxswGNgNJOEOELsYZ678IeLC0gVpr53orLd8HrDDGfAaEAVfjrGL0f+VRzVgcTzzxxDHbxo8fT3JyMvfccw/NmzcvlziMMbRv759Fo5o1a+aX85SVd999F4C///3vPP/887z77rtlkhQ8+uijjBkzhlatWvHZZ58dk9BZa/nyyy998YiIVCQHUzO5fdJi5ickHfNeamYOnyzcym1ntXIhMpGy4ZcF8q21m4DeOPUC+uEsIdoKeB04zVp7oBinWYxTn6A+cLn3HBcB8cBoYIC1tjSTlfPHez9O1eLdwG3ATcAq4BJr7b/9cQ0pW7nj9o8ePcqjjz5K69atCQsL46677gLgwIEDPP/885x99tk0atSIsLAw6tevz+WXX87ixceuJFvUnIIHHnjANzTmo48+olevXkRGRlKnTh1uvPFG9u7dW2Rs+X399dcYY3jppZdYsGABF154IdWrV6datWqcd955x40JYOvWrdxwww3UqVOHqKgoevXqxSeffFLgfCVx9OhRJk2aRL169Xjqqado3749X3zxBQcOFOcjWnxr1qxhzJgxREZG8v333x+3h8cYw7Bhw5g2bZpfry0iUlob9x5h6NtzCiQEw3o25l9DOvnaH8xJJCvHc7zDRSolvy1J6h3OM6KY+x4zdd9aGw8M91Msw092LmvteJwkRiopj8fD4MGDWbduHRdeeCG1a9f2PaVfunQpjz/+OAMHDmTIkCHExsaSkJDA9OnT+frrr/npp58466yzin2tF154ga+//pohQ4ZwzjnnMGfOHCZNmsTKlStZtGgRwcHBxTrP7NmzefTRRxk4cCC33XYbmzdvZurUqQwcOJCVK1cW6GXYvn07/fv3Z+fOnZx77rn06dOHHTt2cPPNNzNo0KATXKVoU6ZM4dChQ9x7772EhoZy8803849//IMPP/yQe++995TOeTxjx47F4/Fw/fXX07p16xPuGx5+woLlIiLlataGfdzx0RJS0rN92x68qB1/PbsVGdkeXv9lA/uPZLIrOZ1v43cxpHtjF6MV8Z8KVadApCSOHj1KSkoKK1euPGbuQc+ePdm9ezc1a9YssH3Tpk3069eP+++/n4ULFxb7Wr/8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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 386
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(ctr_auc_stat['train'], label='Training AUC')\n",
    "plt.legend()\n",
    "_ = plt.ylim()\n",
    "print(ctr_auc_stat['train'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示测试 CTR AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.49984601244978266, 0.5155728007144376, 0.5052546506620856, 0.5091789555390932, 0.5193167571131996, 0.5212951309506639, 0.5249434366274353, 0.5353521551154182, 0.5227837523066345, 0.5356323675020817]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwUAAAH0CAYAAABsNIHsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd8lfXd//HXNzuBEAgEwibspUxxIFsRUbGO3m2tVhSt3qB2qG21d1Xsr9ret622IC5ErNZqrVVABEUhbFSGyh4JG8IKhOx1vr8/rpOTQUIScpIryXk/H488Dt9rfhIjXJ/rOz7GWouIiIiIiASuILcDEBERERERdykpEBEREREJcEoKREREREQCnJICEREREZEAp6RARERERCTAKSkQEREREQlwSgpERERERAKckgIRERERkQCnpEBEREREJMApKRARERERCXBKCkREREREApySAhERERGRAKekQEREREQkwCkpEBEREREJcEoKREREREQCnJICEREREZEAF+J2AI2RMWYv0AzY53IoIiIiItK4dQHOWmsTanIRJQW1o1lkZGRsnz59Yt0OREREREQar+3bt5OdnV3j6ygpqB37+vTpE7thwwa34xARERGRRmzIkCFs3LhxX02vozkFIiIiIiIBTkmBiIiIiEiAU1IgIiIiIhLglBSIiIiIiAQ4JQUiIiIiIgFOSYGIiIiISIBTUiAiIiIiEuBUp8BlHo+H1NRU0tPTyc3NxVrrdkgSQIwxhIeHEx0dTWxsLEFBek8gIiISiJQUuMjj8XDw4EGysrLcDkUClLWWnJwccnJyyMzMpGPHjkoMREREApCSAhelpqaSlZVFSEgI8fHxNGnSRA9kUqc8Hg+ZmZmkpKSQlZVFamoqrVq1cjssERERqWN6AnVReno6APHx8URHRyshkDoXFBREdHQ08fHxQPHvpIiIiAQWPYW6KDc3F4AmTZq4HIkEuqLfwaLfSREREQksSgpcVDSpWD0E4jZjDIAmuouIiAQoPY2KiC8pEBERkcCkpEBEREREJMApKRARERERqYFVu09yOjPP7TBqREuSioiIiIhcoLTsfO5/ewMea7ltWCceHt+LyLBgt8OqNvUUiKuMMdX6mjt3bq3Gk5GRgTGG66+/vkbX2blzpy/mZ555psLjPv7440rvt2XLFowx9O/fv9z9hYWFvPPOO3zve9+jffv2hIeH07RpU/r378/UqVP56quvavS9iIiISMXeWruPjNwCsvIKSdx1gvCQhvl47beeAmNMB+BpYALQEjgKfARMt9aeruI1EoFR5zkk0lqbU+L4Zt57DgG6AbHAWWAf8A7wmrU2s8w9RgPLznOPP1lrf1OVeKXmnnzyyXO2vfDCC6SlpfGzn/2M5s2bl9o3cODAugqtRl599VXASXpmz57NY489ViuTeQ8ePMjNN9/M+vXrad68OVdffTUJCQkUFBSwc+dO3nzzTV566SXmzJnDXXfd5ff7i4iIBLKsvALmrN7na08d3Y2goIa5eIdfkgJjTDdgDdAamAfsAIYBPwMmGGOGW2tPVeOS0yvYXlCmHQv8FPgKWAicAGKAscDzwL3GmMuttWfLudZyILGc7auqEafU0FNPPXXOtrlz55KWlsbPf/5zunTpUucx1VRubi5///vfiYuL44YbbmDOnDksWbKE8ePH+/U+Z8+eZfz48ezYsYO77rqLF154gWbNmpU65vTp0/zxj3/kzJkzfr23iEig2X8qk0ff/46YqFD+/F8DaBYR6nZIUg+8+9VBUr1zCTq0iOSGAe1cjujC+at/YxZOQvCQtfZ71trfWGuLHsx7AX+ozsWstU9V8FU2KTgIxFhrR1tr77XWPm6tnWat7QP8A+gL3F/BbRIruMfn1frOxTUnTpzgkUceoVevXkRERNCiRQuuueYaEhMTzzk2Ozub5557joEDB9K8eXOaNGlCQkICN998MytWrABg5syZREdHA7Bw4cJSw5aee+65Ksf14YcfcvLkSW6//XbuvfdeAF577bWaf8NlPPvss+zYsYPx48fz+uuvn5MQALRo0YI//elPTJ061e/3FxEJFB6P5efvfcNX+1JZsu0YM5fucTskqQfyCjy8uiLZ175vVDdCgxvm0CHwQ0+Bt5dgPM6QnRfL7H4S503+HcaYh8sO5akpa20hUFjB7veBHwM9/HlPqR927drF2LFjOXz4MGPGjOG6667j7NmzzJ8/n3HjxvHWW29x2223+Y7/wQ9+wIIFCxg0aBCTJ08mPDycw4cPs2LFCpYuXcrIkSMZNmwYjz32GM8++yw9evQodf4VV1xR5diKhg5NnjyZiy++mN69ezNv3jyOHz9O69at/fL9W2uZPXs2AE888USlQ5PC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Obff55DEf/nA3yo5dgbeB/oCvC+IGloUX94GHNC3/OdKQGnh8ab6DUsiRGpgW9m0o6X7vzKVrUQ+LV4W5bR4mZyImd0DTAOWAKM1ZEhOxszuw+st0OJlccrMZuHNJHO7c+7RkP2j8WYsywI6O+cqm+RCYpSZXQM8B+wBBjnndoQcuwR4Fe+hQ6Zz7oA/UUpNqacg+t0ELAKeMLORwCrgTLw1DNYCd/sYm/jIzK7FSwiKgQ+AW7yFa4+z2Tn3TD2HJiKR7Wa83qJHzGwc3tSkXYDL8H6fXK+EIG7NxFuHYBSwysxeAnbjDUW8FDDgZ0oIopOSgijnnNtgZoPxvvyNAcYCu/AKSqc65w6d6HyJaV0C20TgR5W85n28GSRERABwzm03s0F4U9ZOAIYDR4A5wIPOuU/8jE/845wrMbOxeInjZLzi4obAQeA14Ann3FwfQ5Ra0PAhEREREZE4p9mHRERERETinJICEREREZE4p6RARERERCTOKSkQEREREYlzSgpEREREROKckgIRERERkTinpEBEREREJM4pKRARERERiXNKCkRERERE4pySAhERERGROKekQEREREQkzikpEBERERGJc0oKRERERETinJICEREREZE4p6RARERERCTOKSkQEREREYlzSgpEREREROLc/wfePsXIohTkQgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 386
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(ctr_auc_stat['test'], label='Test AUC')\n",
    "plt.legend()\n",
    "_ = plt.ylim()\n",
    "print(ctr_auc_stat['test'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示训练CVR AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.5406872062139505, 0.6357315229570129, 0.6661847092415029, 0.6834774129844685, 0.6853918928232335, 0.694171282782966, 0.7066459134976989, 0.6895087766168382, 0.6761431362283743, 0.6939987608929128]\n"
     ]
    },
    {
     "data": {
      "image/png": "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pTy22ApO1trTON8sFH67UNSxM3AmBufNWvsd8N2FnCvVW3pWLvd+uIYtB08B4GXgjVs60a9VPQ9HJiIiInJhVE1J5Dxk5TgY+8laVsUnudteHNWR4R0aeDAqERERkYujpECklHIdlse++o3524+528Zd05bfdWviwahERERELp6SApFSsNbyzMzNfPfbQXfbg1e05N5+zT0YlYiIiEjZUFIgUgqvzN7OJyv3ubfv6NWMx4YWV69PREREpHJRUiByDv9buJu3F5xZCXfk5Q159tp25CulISIiIlKpKSkQKcHnq/Yx8adt7u3B0fX5982X4eWlhEBERESqDiUFIsX4YeMhnvx2k3u7R1Qob93WGV9vfduIiIhI1aK7G5EiLNxxjEe+WI+1zu32jWrx/p1dqeHr7dnARERERMqBkgKRQtbuTeL+aWvJznVmBC3qBfHR3d0JruHr4chEREREyoeSApF8th48xV1TVpOenQtAo5AApo3pQd2a/h6OTERERKT8KCkQcYlLTOWOyatIycgBIKymH9PGdKdhSICHIxMREREpX0oKRIBDyenc/v5KEk9nAhBcw4eP7ulO83o1PRyZiIiISPlTUiDVXlJqFqM/WMWBk+kA1PD1Yspd3WjXsLaHIxMRERG5NJQUSLWWkpHNXVNWsevoaQB8vQ3v3t6FrpGhHo5MRERE5NJRUiDVVkZ2Ln+cuoaNCckAGAP//d3lDGxT38ORiYiIiFxaSgqkWsrOdfDgp+tYsSfJ3favGzpw7WUNPRiViIiIiGcoKZBqx+GwPDF9I7/EHnW3/X14NH/o3tSDUYmIiIh4jpICqVastTz33Ra+XX/A3fbAwBbcP6CFB6MSERER8SwlBVKtvDp3Bx8t3+vevrVHU54Y1saDEYmIiIh4npICqTbeX7yHN37d5d4e0bEB/xzZHmOMB6MSERER8TwlBVItfLlmP8//EOveHtimHv/93eV4eykhEBEREVFSIFXez5sP8fevN7q3u0XW4Z3buuDno3/+IiIiIqCkQKq4JTsTeeizDTisczumQS3ev7MbAX7eng1MREREpAJRUiBV1rp9J7hv2hqych0ANA8LYuqY7tQO8PVwZCIiIiIVi5ICqZIOJ2dw95TVpGXlAtCgdg2m3duDsJr+Ho5MREREpOJRUiBV0uer95Gcng1AaJAf08b0oFFIgIejEhEREamYlBRIlfTrtjPVisdfG0PL+jU9GI2IiIhIxaakQKqcI6cy2JiQDICPl2Fgm/oejkhERESkYlNSIFXO/HxvCbpFhmpisYiIiMg5KCmQKueX2DNJweC2eksgIiIici5KCqRKycjOZemuRPf24LbhHoxGREREpHJQUiBVyvLdx0nPdi5D2rxeEFFhQR6OSERERKTiU1IgVcq8bUfc/z04WkOHREREREpDSYFUGdZafi0wn0BDh0RERERKQ0mBVBmxh1I4mJwBQK0aPnRpVsfDEYmIiIhUDkoKpMqYF3tm6NDANvXx9dY/bxEREZHS0F2TVBnztmkpUhEREZELoaRAqoRjKZn8lnASAG8vw4DW9TwckYiIiEjloaRAqoT5249irfO/uzSrQ0ign2cDEhEREalElBRIlZB/PsGVGjokIiIicl6UFEill5mTy+KdZ6oYD4rWUqQiIur5GXwAACAASURBVCIi50NJgVR6K/ckkZblrGIcWTeQFvVUxVhERETkfCgpkEov/9ChQdHhGGM8GI2IiIhI5aOkQCo1a22BpUg1n0BERETk/CkpkEptx5HTJJxIByDY34eukaEejkhERESk8imzpMAY09gYM9kYc9AYk2mMiTfGvGaMqXMBfXU2xnxqjElw9XXEGLPQGHNHoeMaGWP+zxjzk+t6mcaY48aYucaYUcX0PdAYY0v4evFC/w7k0pu37czQof6t6+HnozxXRERE5Hz5lEUnxpgWwDKgPjAT2AZ0Bx4GrjLG9Pn/7d15uF11fe/x9zfzQEaSQCHInKHiCAIKIhlKEYfe63D1acVq1darFFFb6621ik+t2lpkuE51otW2YrGVeh2KOSGMooJiqWaAQJiHzPN8vvePtU6yszn7nJNzdrL2Ofv9ep48izV/wWPO/uz1W79vZq7t47UuAa4C1gPfAx4DpgKnARcB/1hz+B8DfwY8CNwEPAkcD7wGWBgRn8nM9zW41c3Akm6239aXOtUaOpbaxViSJGmgmhIKgM9RBIJLM/Oaro0RcQXwXuDjwDt7u0hEXABcDfwIeF1mbq7bP7LulJ8C52fmzXXHzQXuBN4bEf+UmXd3c7slmfnR3mpS61q3dRc/f3g9AMMCzp9tKJAkSeqPAY+1KJ8SXACsAj5bt/sjwFbg4ojoyzyRfwtsB363PhAAZObuuvV/qw8E5falwHXl6vl9uK8GoZuW7e9i/MJnTWHqeLsYS5Ik9UcznhTMK5c3ZmZn7Y7M3BwRt1OEhrOBjkYXiYjTgOcC3wHWRcQ84HQggXuAm+qv34uuALGnwf5TyqFKEymGHd2amfcdxPVVscU1sw7Nd+iQJElSvzUjFMwulysa7L+PIhTMoodQALyoXD5NMdb/vLr990bEazLz/t4KioiJwGspAsWNDQ77vfJP7XnfBt6Rmet7u0d5fHfDkgDm9OV89d+uPZ3cvGL1vvWFc+1iLEmS1F/NmKplUrnc2GB/1/bJvVyn66vetwEnAK8orz0L+AbwHOB7EdHjGJEoOld9GTgK+Hw5lKjWauCD5fUmANOBlwO/oAgS340Ip7BpcT9btY4tO4uHQDOnjOXUGUdUXJEkSdLg1awXjZuh64P4cOCNmfnjcn1TORXpHOAMig/u/9LDdf4OeD1wK/CMmYcy81fAr2o2bQF+GBF3UAxTOgd4FcUsSj3KzNO7214+QXhhb+er/xbVdDFeONcuxpIkSQPRjG/Eu54ETGqwv2v7hl6u07X/yZpAAEBmJvs/pJ/Z6AIR8TcUsx3dAlyUmTt7uWftPTYB/1yu1g9dUgvJzAOmIp0/x/cJJEmSBqIZTwqWl8tZDfafWi4bvXNQf51G4aFrnP/Y7nZGxGeAyyj6FbwyM7f1cr/udA1S78tMSarIytVbeHhd8T/v+FHDOeskuxhLkiQNRDOeFNxULi+oH4sfERMohuNso+gb0JM7KaYvPaHB9KWnlcsH6+4REfFZikDwI+AV/QwEUMyQBPBAP8/XYVD7lOClp05n9IjhFVYjSZI0+A04FGTmSooZfk4A3l23+3KKb92/nplbuzZGxJyIOGCGnvKD/FeAMcBfRc0g8Yh4DvAWiulFr6/ZHsDfA+8CfgC8OjO391RvRJzRYPubgDcAu4Bv9XQNVcsuxpIkSc3VrBeN3wXcAVwdEQuApcBZFD0MVgAfqju+a0ag+rdDP0wxnv8y4MVlj4OjgNdQhIXLyhDS5S+Bt1M0PLsH+GA3L5zek5nfqVm/PiL2AHcBj5bXfRHFuwp7gD/KzFV9/jfXYbVh2y7uemgdABEwz/cJJEmSBqwpoSAzV5bfwH8MuBC4CHgCuAq4vK/z/mfmpoh4KfB/KGYQuoTiA/9twKczs77nwInlcmx5Tnf+gaIhWpfPAwsphjVNowgmjwHXAldm5i/7UquqsWT5ajrLLsbPP24y044YXW1BkiRJQ0DTpiTNzEeAt/bx2IbzR2bmFoonC/VPF7o79i0Uw4r6LDM/BXzqYM5R6+io6WK8wKcEkiRJTWGTLg0au/d2smR57fsEdjGWJElqBkOBBo27Vq1n846ii/Exk8Yw5+gJFVckSZI0NBgKNGgsXra/i/ECuxhLkiQ1jaFAg8YBXYydilSSJKlpDAUaFB5YvYUH1hStLsaOHM6LTzqy4ookSZKGDkOBBoXFNbMOnXvqNMaMtIuxJElSsxgKNCgc0MXYqUglSZKaylCglrdx+25+tmrdvvX5hgJJkqSmMhSo5d2yYjV7yjbGz505iRkTx1RckSRJ0tBiKFDL61haMxXpHBuWSZIkNZuhQC1tz95OlqxYvW99gVORSpIkNZ2hQC3t5w9vYMO23QAcNXE0zz5mYsUVSZIkDT2GArW0jpouxvPn2MVYkiTpUDAUqKXVTkW60KFDkiRJh4ShQC3robVbuf/pLQCMHjGMl5w8reKKJEmShiZDgVpW7VOCc0+ZxthRdjGWJEk6FAwFalmLl+0PBfMdOiRJknTIGArUkjbv2M1PHly7b93+BJIkSYeOoUAt6db71rB7b9HF+NnHTOToSXYxliRJOlQMBWpJi2q7GM/1KYEkSdKhZChQy9nbmSxZXtPFeI7vE0iSJB1KhgK1nHse2cC6rbsAmD5hNM85dlLFFUmSJA1thgK1nI6aoUPzZ89g2DC7GEuSJB1KhgK1HKcilSRJOrwMBWopj67fxrInNwMwasQwzj3FLsaSJEmHmqFALaX2KcGLTzqS8aNHVFiNJElSezAUqKUsWro/FCx06JAkSdJhYShQy9i6cw93rtzfxXieU5FKkiQdFoYCtYxb71vDrr2dAMw5egIzp4yruCJJkqT2YChQy1i8rLaLsU8JJEmSDhdDgVpCZ2eyeFlNF+O5R1VYjSRJUnsxFKgl/NdjG1mzZScAR44fxfNmTq64IkmSpPZhKFBLqO1iPG/ODIbbxViSJOmwMRSoJXTUTEW6wFmHJEmSDitDgSr3+Ibt/PqJTQCMHB68dNb0iiuSJElqL4YCVa62i/HZJx3JEXYxliRJOqwMBapc7fsEDh2SJEk6/AwFqtS2XXu4vaaLsVORSpIkHX6GAlXq9vvXsmtP0cV41lFHcNxUuxhLkiQdboYCVaq2i/H8OT4lkCRJqoKhQJXp7MwDpiJdONf3CSRJkqpgKFBlfvX4Jp7eXHQxnjxuJC941pSKK5IkSWpPhgJVpqNm6NC82XYxliRJqoqhQJU5oIuxQ4ckSZIq07RQEBEzI+KrEfF4ROyMiFURcWVEHPSYkIh4YUT8c0Q8Wl7rqYi4OSLe3OD434yIb0XE0xGxIyKWR8TlETG2h3u8JCK+HxHrImJ7RPxXRFwWEcMPtl4dvKc27eDexzYCMGJYcJ5djCVJkirTlNaxEXEycAcwA7gBWAacCbwHuDAizsnMtT1covZalwBXAeuB7wGPAVOB04CLgH+sO/4sYDEwErgeeASYD/wlsCAiFmTmzrpzfgf4NrADuA5YB7wK+AxwDvD6g/svoINV28X4zBOnMnHMyAqrkSRJam9NCQXA5ygCwaWZeU3Xxoi4Angv8HHgnb1dJCIuAK4GfgS8LjM31+0fWbc+HPgaMA74ncz8j3L7MOBbwGvL+3+y5pyJwJeAvcD5mXlXuf3DFOHidRHxxsz85sH8B9DBqR06NN8uxpIkSZUa8PCh8inBBcAq4LN1uz8CbAUujojxfbjc3wLbgd+tDwQAmbm7btPLgLnALV2BoDyuE/hAufrOiKh9g/V1wHTgm12BoDxnB/AX5er/7kOt6qcdu/dy2/2r960vtIuxJElSpZrxTsG8cnlj+WF8n/KD/e0U3+Sf3dNFIuI04LnAjcC6iJgXEX8SEe+PiAXlt//15pfLH9bvyMwHgBXA8cBJfTkHuAXYBrwkIkb3VK/678cr17Jjd/GjctL08ZwwrS95UZIkSYdKM0LB7HK5osH++8rlrF6u86Jy+TSwhGIoz98CnwYWAfdExClNuHfDczJzD/AgxbCqk+r3qzkWLd0/FalPCSRJkqrXjHcKJpXLjQ32d22f3Mt1ugaWv43i5eJXALcBR1G8NPwm4HsR8ZzM3DWAezerXiLi7ga75vR2brvKzANeMvZ9AkmSpOq1Up+CrlqGA2/MzO9n5qbMvA94M3AXxTf+r62qQA3cr5/YxBMbdwAwccwIzjjeLsaSJElVa8aTgq5v1ic12N+1fUMv1+na/2Rm/rh2R2ZmRNwAnEEx1em/DODezaqXzDy9u+3lE4QX9nZ+O1pcM+vQ+bNnMGJ4K+VSSZKk9tSMT2TLy2WjdwZOLZeNxv3XX6fRh/H15bK2IVl/7t3wnIgYAZwI7AEe6KlY9c+iZXYxliRJajXNCAU3lcsL6mcIiogJFM3AtgF39nKdOymmLz2hwfSlp5XLB2u2LS6XF9YfHBEnUXzwf4gDP+A3PAc4j2KmpDvqG55p4FZv3skvHyky3/BhwfmzDAWSJEmtYMChIDNXUkwjegLw7rrdlwPjga9n5taujRExJyIOeBk3M7cBXwHGAH9V21sgIp4DvIXiG/zra067GVgKnBcRr645fhjwqXL1C5mZNedcD6wB3hgRZ9ScMwb4q3L18335d9fBuanmKcEZx09h0ji7GEuSJLWCZnU0fhdwB3B1RCyg+KB+FkUPgxXAh+qOX1ouo277hym+rb8MeHFE3E4x+9BrKMLCZWUIASAz90bEWym+/b8+Iq4HHgYWULx/cDvwmdobZOamiHgHRThYEhHfBNYBr6aYrvR64Lp+/ndQDzqW7Z+K1KFDkiRJraMpb3mWH9TPAK6lCAPvB04GrgLOzsy1fbzOJuClwF8DU4FLgFdSTE3625l5VTfn/ISix8ENFJ2V30vxsvDHgN/qbhhQZn6HohvyLRSzGf0xsBt4H8XMR1l/jgZmx+693Hrfmn3rC+xPIEmS1DKa9aSAzHwEeGsfj61/QlC7bwvFk4X6pws9Xe/XwOv7enx5zu3ARQdzjvrvJw+uY9uuvQCccOQ4TrKLsSRJUstwPkgdFh1La4cOHUXNKyOSJEmqmKFAh1xm0lHTn2CBXYwlSZJaiqFAh9yKp7bw2IbtAEwYPYIzTphacUWSJEmqZSjQIbeoZujQebOnM2qEP3aSJEmtxE9nOuQWL3PokCRJUiszFOiQWrtlJz9/eD0AwwLOn20okCRJajWGAh1SS5avpqvrwwufNYWp40dVW5AkSZKewVCgQ+rALsY2LJMkSWpFhgIdMrv2dHLLitouxg4dkiRJakWGAh0yP31wHVt27gHguKljOXXGERVXJEmSpO4YCnTIHDB0aI5djCVJklqVoUCHxDO6GDt0SJIkqWUZCnRIrFy9hYfXbQNg/KjhnHmiXYwlSZJalaFAh8SimqcE582azugRwyusRpIkST0xFOiQWFwTCubbxViSJKmlGQrUdOu37uKuh9YBEAHzDAWSJEktzVCgprt5xWo6yy7Gzz9uMtOOGF1tQZIkSeqRoUBNt2jp/qlIF9rFWJIkqeUZCtRUu/d2cvOK1fvWfZ9AkiSp9RkK1FQ/W7WOzTuKLsbHTh7LnKMnVFyRJEmSemMoUFPVzzpkF2NJkqTWZyhQU3UsqwkFdjGWJEkaFAwFapoHVm/hwTVbARg7cjgvPunIiiuSJElSXxgK1DSLa54SnHvqNMaMtIuxJEnSYGAoUNMcOBWpQ4ckSZIGC0OBmmLj9t38bNX6fevzZhsKJEmSBgtDgZri5hWr2Vu2MX7ezEnMmDim4ookSZLUV4YCNcXimqFD8+fYxViSJGkwMRRowPbs7eSm5fu7GC/wfQJJkqRBxVCgAfv5wxvYuH03AEdPHMOzj5lYcUWSJEk6GIYCDVhH7dChuXYxliRJGmwMBRqw2i7GC+Y4dEiSJGmwMRRoQB5au5X7n94CwJiRwzjnlGkVVyRJkqSDZSjQgHQs3f+U4JyT7WIsSZI0GBkKNCAdy/a/T7BgrlORSpIkDUaGAvXb5h27+ckD6/atz/d9AkmSpEHJUKB+u2XFGvaUXYxPO3YiR0+yi7EkSdJgZChQv9UOHbKLsSRJ0uBlKFC/7O1MltR0MV5oF2NJkqRBy1CgfrnnkfWs27oLgOkTRnPaMZMqrkiSJEn9ZShQvyyqmYp0/uwZDBtmF2NJkqTBylCgfllcEwoWOHRIkiRpUDMU6KA9sm4by5/aDMCoEcM491S7GEuSJA1mhgIdtMXL9j8leMnJRzJu1IgKq5EkSdJAGQp00DpqQsECG5ZJkiQNek0LBRExMyK+GhGPR8TOiFgVEVdGxJSDuMaSiMge/oypO/6jvRyfEbGy7pzzezn+k836bzIUbdm5hztXrt23Pn+u/QkkSZIGu6aM+4iIk4E7gBnADcAy4EzgPcCFEXFOZq7t4RL1Lm+wfU/d+pIervEq4IXADxrsv7nB+bf1VFi7u+2+Neza2wnAnKMncOzksRVXJEmSpIFq1mDwz1EEgksz85qujRFxBfBe4OPAO/t6scz8aB+PW0I3H+wjYjjwtnL17xucvqSv99F+HUv3dzFe6FMCSZKkIWHAw4fKpwQXAKuAz9bt/giwFbg4IsYP9F4H4SJgJnBnZv7XYbzvkNbZmdy0vKY/gVORSpIkDQnNeFIwr1zemJmdtTsyc3NE3E4RGs4GOvpywYh4A3AisAtYCizOzJ0HUdMflstGTwkATomIS4CJwJPArZl530Hco+388tENrNlSdDE+cvwonj9zcsUVSZIkqRmaEQpml8sVDfbfRxEKZtHHUAB8s2796Yh4d2Ze39uJETETeDmwEbiuh0N/r/xTe+63gXdk5vq+FBkRdzfYNacv5w82tVORzptjF2NJkqShohmzD00qlxsb7O/a3pevlW+geEF4JjCW4sP1J8pzr4uIC/twjbcBw4FvZOa2bvavBj4IPAeYAEynCBG/AF4LfDcinKq1G4tquhgvdOiQJEnSkNFSXacy8zN1m5YDfx4RjwPXUASEHzY6v/ww3/WC8Rcb3ONXwK9qNm0BfhgRdwD3AOdQBJMb+lDv6Q3quJti5qMh4/EN21n6xCYARg0fxrmnTq+4IkmSJDVLM74R73oSMKnB/q7tGwZwjy9TTEf6/IiY0MNxLweOo3jB+N6DuUFmbgL+uVw9r19VDmG1DcvOOmkqR4xuqTwpSZKkAWhGKFheLmc12H9quWz0zkGvMnMHsLlc7WkWo64XjLt9StAHq/twj7a0uGYqUrsYS5IkDS3NCAU3lcsL6sfil9/qnwNsA+7s7w0iYjYwhSIYrGlwzDHAK+j9BeOenF0uH+jn+UPStl17uL2mi/EC+xNIkiQNKQMOBZm5ErgROAF4d93uyym+df96Zm7t2hgRcyLigBl6IuLEiJhaf/2ImA58rVz9ZmbWdzXu0vWC8dczc3ujeiPijAbb3wS8gWIa1G81Or8d3X7/WnbtKWabnXXUERw3dVzFFUmSJKmZmjUw/F3AHcDVEbGAorfAWRQ9DFYAH6o7fmm5rJ3T8mXAFyLiNopv6tcBz6JoRDYJuAv4QHc3r3vBuKfeBADXR8Se8nqPAmOAFwFnUry38EeZuaqXa7SV2i7GPiWQJEkaepoSCjJzZfkN/MeACyk+yD8BXAVc3sd5/++m6E9wOvACiqZim4F7Kb65/2Jm7mpw7m8Dx9O3F4w/DyykGNY0jSKYPAZcC1yZmb/sQ61to7MzD+hP4PsEkiRJQ0/TppDJzEeAt/bx2Gd0vSo/zL+ln/f+AQc+dejp2E8Bn+rPfdrRfz++kac3F82kp4wbyQueNaXiiiRJktRsNulSjzpqGpbNmz2D4XYxliRJGnIMBepRx7L97xPMt4uxJEnSkGQoUENPbtzBfz9WdDEeMSw4b5ZdjCVJkoYiQ4Eaumn5/qFDZ544lYljRlZYjSRJkg4VQ4EacipSSZKk9mAoULd27N7Lbffvbx7tVKSSJElDl6FA3bpj5Rp27C66GJ88fTwnTBtfcUWSJEk6VAwF6lbtVKQOHZIkSRraDAV6hky7GEuSJLUTQ4Ge4ddPbOKJjTsAmDR2JKcfbxdjSZKkocxQoGeoHTp0/uzpjBjuj4kkSdJQ5qc9PUNHzdCh+Q4dkiRJGvIMBTrA05t38MtHNgAwfFhw/ixDgSRJ0lBnKNABlixbve+fzzh+CpPG2cVYkiRpqDMU6ACLaroYL3QqUkmSpLZgKNA+9V2M58916JAkSVI7MBRonzsfWMu2XXsBOHHaeE6efkTFFUmSJOlwMBRon8XOOiRJktSWDAUCii7Gtf0J7GIsSZLUPgwFAmD5U5t5bMN2ACaMHsGLTpxacUWSJEk6XAwFAg7sYnze7OmMtIuxJElS2/CTnwDoOGAqUocOSZIktRNDgVizZSe/KLsYDwvsYixJktRmDAViyfLVZBb/fPrxU5gyflS1BUmSJOmwMhSIxcv2Dx2aP8cuxpIkSe3GUNDmdu3p5JYV+7sY+z6BJElS+zEUtLmfPriOLTv3AHDc1LGcMsMuxpIkSe3GUNDmFtXMOrRgzlFERIXVSJIkqQqGgjaWmXTUvE+wwKFDkiRJbclQ0Mbuf3oLj6wruhiPHzWcs048suKKJEmSVAVDQRvrWFbTxXjWdEaN8MdBkiSpHfkpsI3VdjFeMNepSCVJktqVoaBNrd+6i7sfWg9ABJw/e3rFFUmSJKkqhoI2tWTF03SWXYxfcNxkph0xutqCJEmSVBlDQZvqWLr/fQKHDkmSJLU3Q0Eb2r23k5tXrN637lSkkiRJ7c1Q0IZ+tmodm3cUXYyPnTyW2UdNqLgiSZIkVclQ0IZqhw7NnzPDLsaSJEltzlDQhhYvq32fwKFDkiRJ7c5Q0GZWrt7Cg2u2AjBu1HDOPskuxpIkSe3OUNBmFtcMHTr3lGmMGTm8wmokSZLUCgwFbWbRAV2MHTokSZIkQ0Fb2bhtN3eVXYwB5s0xFEiSJMlQ0FZuvm81e8s2xs+bOYkZE8ZUXJEkSZJaQdNCQUTMjIivRsTjEbEzIlZFxJURMeUgrrEkIrKHP8/4FNvL8Xf2cK9XlvfbGBFbIuInEfH7/f33Hww6Dhg6ZBdjSZIkFUY04yIRcTJwBzADuAFYBpwJvAe4MCLOycy1B3HJyxts39Ng+0PAtd1sf7RBvZcA1wBrgW8Au4DXAddGxHMy808OotZBYc/eTpYs39/FeL5DhyRJklRqSigAPkcRCC7NzGu6NkbEFcB7gY8D7+zrxTLzowd5/1V9PSciTgA+DawDzsjMVeX2jwE/A94fEd/OzB8fZA0t7e6H1rNx+24Ajp44hmcfM7HiiiRJktQqBjx8qHxKcAGwCvhs3e6PAFuBiyNi/EDv1SR/AIwG/m9XIADIzPXAX5erfQ4wg0Vtw7L5c+1iLEmSpP2a8aRgXrm8MTM7a3dk5uaIuJ0iNJwNdPTlghHxBuBEimE9S4HFmbmzh1MmR8QfAEcDG4G7M7PR+wTzy+UPu9n3g7pjhozaqUgXOhWpJEmSajQjFMwulysa7L+PIhTMoo+hAPhm3frTEfHuzLy+wfHPA75SuyEifglcnJn39rXezHwiIrYCMyNiXGZu62O9LW3Vmq2sXF10MR4zchgvOXlaxRVJkiSplTRj9qFJ5XJjg/1d2yf34Vo3AK8CZgJjgTnAJ8pzr4uIC7s55wrgHGA6MAF4EXA9RVBYHBHH9rPeSQ327xMRd3f3p6y7ZXQss4uxJEmSGmupPgWZ+ZnM/H+Z+Vhm7sjM5Zn558D7KWr9RDfnvD8z78jMNZm5JTPvyszXA98GpgFDbiahg7V42f6hQ/PnOBWpJEmSDtSMUNDbN+td2zcM4B5fppiO9PkRMaGP53yhXJ5Xt72v9TZ6krBPZp7e3R+KKVlbwqYdu/nJA+v2rTsVqSRJkuo1IxQsL5ezGuw/tVw2euegV5m5A9hcrvZ1FqOuSfnrj29Yb0T8Rnn8o0PlfYJbV6xhT9nF+LRjJ3L0JLsYS5Ik6UDNCAU3lcsLIuKA65Xf6p8DbAMadhfuTUTMBqZQBIM1fTzt7HL5QN32xeWyu/cTXl53zKB3QBdjhw5JkiSpGwMOBZm5ErgROAF4d93uyym+ef96Zm7t2hgRcyLigJdxI+LEiJhaf/2ImA58rVz9Zmbuqdn33IgY2c05z6VomAZFx+JaXwN2ApeUjcy6zpkC/Hm5+gWGgL2dyU3L979kvMCpSCVJktSNZnU0fhdwB3B1RCyg6C1wFkUPgxXAh+qOX1ouaztovQz4QkTcRvHt/jrgWcBFFOP87wI+UHed9wGviohbgUcoPuzPoXgKMBz4EvAvtSdk5oMR8afA1cBdEXEdRT+E11HMevR3Q6Wb8S8eXs/6bUUX4+kTRnPaMb1OqCRJkqQ21JRQkJkrI+IM4GMUH8gvAp4ArgIuL7sF9+Zuiv4EpwMvACZSDBe6F/gW8MXM3FV3znfK455L0XBsDLCWognZlzLzPxrUe01ErKKYmejNFE9Mfg38RWb+Qx//tVte7VSkC+bMYNgwuxhLkiTpmZr1pIDMfAR4ax+Pfcan07LJ2FsO8p7foQgGBy0zvwt8tz/nDha17xM465AkSZIaaak+BWqeR9ZtY8VTWwAYNWIY555qF2NJkiR1z1AwRNU+JXjJyUcyblTTHgpJkiRpiDEUDFEHvE8w16lIJUmS1JihYAjasnOPXYwlSZLUZ4aCIei2+1aza28nAHN/YyLHTh5bcUWSJElqZYaCIahj6YFTkUqSJEk9MRQMMZ12MZYkSdJBMhQMMb98dANrthQ93qYdMYrnzZxccUWSJElqdYaCIaZ26NC82XYxliRJUu8MBUPMgVOROnRIkiRJvTMUDCGPbdjO0ic2ATBq+DDOPXV6xRVJkiRpMDAUDCGLa54SnHXSVI4YbRdjSZIk9c5QMIR0LH1q3z8vtIuxJEmS+shQMERs27WHioHbDAAAB3tJREFUO1au3bduF2NJkiT1laFgiPjFwxvYtafoYjz7qAkcN3VcxRVJkiRpsHDQ+RBxzinTuOOD8+lY9jTjRg6vuhxJkiQNIoaCIeSYyWO5+Ozjqy5DkiRJg4zDhyRJkqQ2ZyiQJEmS2pyhQJIkSWpzhgJJkiSpzRkKJEmSpDZnKJAkSZLanKFAkiRJanOGAkmSJKnNGQokSZKkNmcokCRJktqcoUCSJElqc4YCSZIkqc0ZCiRJkqQ2ZyiQJEmS2pyhQJIkSWpzhgJJkiSpzUVmVl3DkBMRa8eOHTt17ty5VZciSZKkIWzp0qVs3759XWYeOZDrGAoOgYh4EJgIrDrMt55TLpcd5vtqcPDnQ434s6FG/NlQT/z5aA0nAJsy88SBXMRQMIRExN0AmXl61bWo9fjzoUb82VAj/myoJ/58DC2+UyBJkiS1OUOBJEmS1OYMBZIkSVKbMxRIkiRJbc5QIEmSJLU5Zx+SJEmS2pxPCiRJkqQ2ZyiQJEmS2pyhQJIkSWpzhgJJkiSpzRkKJEmSpDZnKJAkSZLanKFAkiRJanOGgiEgImZGxFcj4vGI2BkRqyLiyoiYUnVtqk5EHBkRb4+If4+I+yNie0RsjIjbIuJtEeH//3WAiHhTRGT55+1V16NqRcSC8u+PJ8vfLY9HxH9GxEVV16ZqRcQrIuLGiHi0/N3yQET8a0S8uOra1H82LxvkIuJk4A5gBnADsAw4E5gHLAfOycy11VWoqkTEO4HPA08ANwEPA0cBrwEmAd8GXp/+JSAgIo4D7gWGA0cA78jML1dblaoSEX8D/CnwKPADYA0wHTgdWJSZH6iwPFUoIj4FfABYC3yH4mfjFODVwAjgzZn5jeoqVH8ZCga5iPhP4ALg0sy8pmb7FcB7gS9m5jurqk/ViYj5wHjge5nZWbP9aOCnwHHA6zLz2xWVqBYREQH8CDgR+DfgTzAUtK2IeAfw98A/AH+Ymbvq9o/MzN2VFKdKlb8/HgNWA8/NzKdr9s0DFgMPZuZJFZWoAXD4wCBWPiW4AFgFfLZu90eArcDFETH+MJemFpCZizPzu7WBoNz+JPCFcvX8w16YWtGlwHzgrRR/b6hNRcRo4OMUTxafEQgADARt7XiKz44/qQ0EAJl5E7CZ4omSBiFDweA2r1ze2M0Hv83A7cA44OzDXZhaXtcv9T2VVqHKRcRc4JPAVZl5S9X1qHK/RfGh7t+AznLs+J9FxHscLy7gPmAXcGZETKvdERHnAROARVUUpoEbUXUBGpDZ5XJFg/33UTxJmAV0HJaK1PIiYgTw5nL1h1XWomqVPwtfp/hW+M8rLket4UXlcgfwC+C02p0RcQvFsMPVh7swVS8z10XEnwFXAL+OiO9QvFtwMsU7BT8C/qjCEjUAhoLBbVK53Nhgf9f2yYehFg0en6T4Rf/9zPzPqotRpf4SeAFwbmZur7oYtYQZ5fJPgV8DLwXuoXjf5NMUXzT9Kw49bFuZeWVErAK+CryjZtf9wLX1w4o0eDh8SGojEXEp8H6KWaourrgcVSgizqJ4OvB3mfnjqutRy+j6XLAHeHVm3paZWzLzXuB/UsxG9DKHErWviPgAcD1wLcUTgvEUs1I9APxTOXOVBiFDweDW9SRgUoP9Xds3HIZa1OIi4hLgKopv/+Zl5rqKS1JFymFD/0gx9PDDFZej1tL1++IXmbmqdkdmbgO6ni6eeTiLUmuIiPOBTwH/kZnvy8wHMnNbZv6cIjQ+Brw/Ipx9aBAyFAxuy8vlrAb7Ty2Xjd45UJuIiMuAa4D/pggET1Zckqp1BMXfG3OBHTUNy5Ji5jKAL5XbrqysSlWh6/dKoy+T1pfLsYehFrWeV5bLm+p3lKHxpxSfLV9wOItSc/hOweDW9X/KCyJiWN1c9BOAc4BtwJ1VFKfWUL4U9kmKccG/lZlrKi5J1dsJfKXBvhdS/EK/jeIDokOL2ksHkMBv1v9eKXW9ePzg4S1LLWJ0uWw07WjX9mdMZavWZ/OyQc7mZepJRHwY+BhwN3CBQ4bUm4j4KMXTApuXtamIuIFiJpn3ZeZnarZfQDFj2UbghMxsNMmFhqiI+F/AdcBTwOmZ+VjNvpcD36P40mFmZq6tpkr1l08KBr93AXcAV0fEAmApcBZFD4MVwIcqrE0ViojfpwgEe4FbgUuLxrUHWJWZ1x7m0iS1tndTPC26IiJeQTE16YnA/6D4++TtBoK2dT1FH4KFwNKI+HfgSYqhiK8EAviggWBwMhQMcpm5MiLOoPjwdyFwEfAExQull2fm+p7O15B2YrkcDlzW4JibKWaQkCQAMvPRiDidYsraVwPnAZuA7wKfyMyfVlmfqpOZnRFxEUVwfCPFy8XjgHXA94GrM/PGCkvUADh8SJIkSWpzzj4kSZIktTlDgSRJktTmDAWSJElSmzMUSJIkSW3OUCBJkiS1OUOBJEmS1OYMBZIkSVKbMxRIkiRJbc5QIEmSJLU5Q4EkSZLU5gwFkiRJUpszFEiSJEltzlAgSZIktTlDgSRJktTmDAWSJElSmzMUSJIkSW3OUCBJkiS1uf8Pw5TgEeXd9XwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 386
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(cvr_auc_stat['train'], label='Training AUC')\n",
    "plt.legend()\n",
    "_ = plt.ylim()\n",
    "print(cvr_auc_stat['train'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示测试 CVR AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.6932272702053751, 0.6740265626187131, 0.6825428807378543, 0.6914505047870819, 0.7000203656408222, 0.6805661718472995, 0.6749458620741469, 0.6866179272656445, 0.7020083310455566, 0.7067564785212375]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwUAAAH0CAYAAABsNIHsAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd81dX9x/HXySYhIUACYSkzDMMeDipDFK0bsMtaxar9+bPL1mqLWlfdta1aO7SCqG39aRFQXHURUJxskL33SEL2Ts7vj+/NzU1MSEIu+d7xfj4ePL453/kJ4r33c885n2OstYiIiIiISPiKcDsAERERERFxl5ICEREREZEwp6RARERERCTMKSkQEREREQlzSgpERERERMKckgIRERERkTCnpEBEREREJMwpKRARERERCXNKCkREREREwpySAhERERGRMKekQEREREQkzCkpEBEREREJc0oKRERERETCnJICEREREZEwp6RARERERCTMKSkQEREREQlzUW4HEIqMMTuBJGCXy6GIiIiISGjrDeRba/u05iZKCk6OpHbt2nUaPHhwJ7cDEREREZHQtXHjRkpKSlp9HyUFJ8euwYMHd1qxYoXbcYiIiIhICBs9ejQrV67c1dr7aE6BiIiIiEiYU1IgIiIiIhLmlBSIiIiIiIQ5JQUiIiIiImFOSYGIiIiISJhTUiAiIiIiEuaUFIiIiIiIhDmtU+Cy6upqcnJyKCgooKysDGut2yFJGDHGEBsbS2JiIp06dSIiQt8TiIiIhCMlBS6qrq5m7969FBcXux2KhClrLaWlpZSWllJUVESvXr2UGIiIiIQhJQUuysnJobi4mKioKNLS0khISNAHMmlT1dXVFBUVcejQIYqLi8nJySElJcXtsERERKSN6ROoiwoKCgBIS0sjMTFRCYG0uYiICBITE0lLSwNq/02KiIhIeNGnUBeVlZUBkJCQ4HIkEu5q/g3W/JsUERGR8KKkwEU1k4rVQyBuM8YAaKK7iIhImNKnURHxJgUiIiISnpQUiIiIiIiEOSUFIiIiIiKtkFdSwaI1B9wOo1VUklRERERE5ATtyS7mh89/ybYjhURGGC4c2s3tkE6IegrEVcaYFv2ZO3fuSY2nsLAQYwwXX3xxq+6zefNmb8wPPvhgo+e98cYbTT5v/fr1GGPIyMho8HhVVRX//ve/ufzyy+nRowexsbG0b9+ejIwMbrrpJr744otW/S4iIiLSsOW7crj8r8vYdqQQgFteWcORglKXozox6ikQV919991f2/f444+Tl5fHz3/+c5KTk+scGzFiRFuF1irPPPMM4CQ9zz77LLNmzTopk3n37t3L9OnTWb58OcnJyZx33nn06dOHyspKNm/ezPPPP8/f/vY35syZw7XXXuv354uIiISrhav2c9u8tZRXVQMQExXBI1cMo0tinMuRnRglBeKqe+6552v75s6dS15eHjfffDO9e/du85haq6ysjBdeeIHU1FQuueQS5syZw3vvvcfUqVP9+pz8/HymTp3Kpk2buPbaa3n88cdJSkqqc86xY8d4+OGHyc3N9euzRUREwpW1lj+9t4UnP9zm3dc5IYZnrh7D6FM7uhhZ62j4kASto0eP8qtf/YqBAwcSFxdHx44dOf/888nMzPzauSUlJTz22GOMGDGC5ORkEhIS6NOnD9OnT2fp0qUAPPXUUyQmJgLw5ptv1hm29NhjjzU7rgULFpCVlcVVV13FDTfcAMA//vGP1v/C9Tz00ENs2rSJqVOnMnv27K8lBAAdO3bkkUce4aabbvL780VERMJNaUUVP31pVZ2EIL1rexb+eHxQJwSgngIJUlu2bOGcc85h//79TJ48mYsuuoj8/Hxef/11pkyZwosvvsiVV17pPf873/kOixYtYuTIkcycOZPY2Fj279/P0qVL+fDDD5kwYQLjxo1j1qxZPPTQQwwYMKDO9WeddVazY6sZOjRz5kyGDRvGoEGDeO211zhy5AhdunTxy+9vreXZZ58F4K677mpyaFJsbKxfnisiIhKujhaU8aMXl7NqT23v+4T0VJ66ciRJcdEuRuYfSgokKF155ZUcOnSI1157jUsvvdS7Pzs7m/Hjx3PjjTdy4YUXkpyczMGDB1m0aBETJkwgMzOzzgdoay05OTkAjBs3jiFDhvDQQw+Rnp7e4NCmpmzdupXMzExGjRrFsGHDALjmmmuYNWsWzz33HL/+9a9b94t7bNq0iaysLBISEjjjjDP8ck8RERFp2OZDBfxw7pfszy3x7rv6zFO56+IhREWGxsAbJQUBrPdv3nQ7hGbb9fBFbfasZcuWsWLFCmbOnFknIQDo3Lkzv/3tb7nqqqt4/fXXufrqq73HYmNjv/aNujGGzp07+y22Z599FmstM2fO9O77wQ9+wB133MGzzz7Lbbfd5pcJxwcPHgQgLS2NyMjIVt9PREREGpa5+Qg/+fcqCssqAYgwcNfFQ5g5vo/LkfmXkgIJOp9++ingzClo6Nv8/fv3A7Bx40YAunXrxuTJk3nvvfcYPXo006dP5+yzz2bcuHHExfmvQkBFRQVz584lJiamztCjHj16cN555/Hf//6XxYsXc8455/jtmSIiInLyvPDpLu55/SuqrdNOiInkqStHMXmQf4YDBxIlBRJ0srOzAWcy8JtvNt6bUlhY6P359ddf58EHH+Tll1/mzjvvBCA+Pp7vfve7/P73v6dTp06tjmvhwoUcOXKEGTNmfK33YebMmfz3v//lmWeeqZMUREQ4XY7V1dWN3rfmWM254CQ6AIcOHaKqqkq9BSIiIn5UWVXN/W9uZO4nu7z7uneIY/bMsQzu9vXCHqFASUEAa8shOcGkQ4cOAMyePZsf/vCHzbqmffv2PPjggzz44IPs3r2bJUuWMHv2bObMmcOBAwd4++23Wx1XzQTjV199tdEhQjWViVJSUur8LjWJTkOysrIA6qzZMGjQIFJSUsjKyuLzzz9v0URoERERaVxBaQU/fWkVmZuPevcN75XMP64eHbRrEDSHkgIJOjUTaz/66KNmJwW+Tj31VK6++mquvPJKevfuzbvvvktJSQnt2rXzfuNeVVXVonvu2LGDDz74gE6dOjFt2rQGz1m3bh1ffPEFzz//PLfccgsAGRkZREREsG7dOgoLC2nfvv3XrqsZLjV8+HDvPmMM119/PQ8//DC/+93vmkxqysrKVIFIRESkCfuOFXPd3OVsPlzg3XfR0G784dvDiYsO7V750JguLWFl4sSJjBo1in/+85+89NJLDZ6zcuVKjh07BjiTcmvmF/gqKCigqKiImJgYbzLQrl072rVrx549e1oUU80E4+uuu45nn322wT81PQm+axZ06NCBadOmUVJSwqxZs7523x07dvDEE08AThUjX7NmzWLgwIG888473HDDDRQUFHzt+ry8PG6//Xb++te/tuj3ERERCTer9hzj8r98Uich+Mnk/vz5eyNDPiEA9RRIEDLG8J///IcpU6Zw5ZVX8oc//IGxY8eSmJjIvn37WLVqFZs2bWLdunV07NiR7du3c/bZZzNy5EgyMjLo0aMHubm5LFq0iNzcXG6//XZiYmK8958yZQpvvPEGM2bMYOjQoURFRXHuuec2WvqzsrKS5557DoDrr7++0biHDx/OmDFjWL58OUuWLGHixImAs2ja6tWreeqpp8jMzGTKlCm0b9+eHTt28Nprr1FcXMx9993HmDFj6twvKSmJ9957j+nTp/Pss88yb948pk6dSp8+faiqqmLLli18+OGHFBYWMnfu3Fb+rYuIiISuN9Ye4JZX1lBW6czji440PDx9GDNG93Q5srajpECCUt++fVm1ahVPPPEECxYs4IUXXsBaS7du3TjttNO49dZb6d+/P+CMv7/rrrvIzMzk/fffJzs7m86dOzN48GAef/xxrrjiijr3/vvf/87NN99MZmYmCxcupLq6mri4uEaTgkWLFnHo0CHOPvts0tPTjxv3DTfcwPLly3nmmWe8SUFaWhorVqzg8ccf57XXXmP27NmUlpaSmprK1KlT+fGPf8y5557b4P169erFZ599xssvv8zLL7/Mxx9/zMKFC4mMjKR37958//vf57rrrmPs2LEt/SsWEREJedZanvpwG394b4t3X8f4aJ7+wRjG9Wl9EZJgYqy1bscQcowxK0aNGjVqxYoVxz2vZkjL4MGD2yIskePSv0cREQknZZVVzHp1HfNX7ffu65uawJxrxtI7JcHFyFpm9OjRrFy5cqW1dnRr7uO3OQXGmJ7GmDnGmAPGmDJjzC5jzOPGmI7NvH6SMcY240+vBq4dYox5xRhzxBhTaozZbIy51xjTroFzezdx///zx9+HiIiIiASmnKJyrnr28zoJwVn9OrPgf8cHVULgT34ZPmSM6Qd8AnQBXgM2AeOAnwMXGGPGW2sbr7no2AXc28ixocB0YL21dm+9Z58OfAhEA/OAvcA5wF3AFGPMFGttWQP3XAMsbGD/+ibiFBEREZEgte1IIT+c+yV7coq9+743rhf3XZZBdGT41uDx15yCv+IkBD+z1v65Zqcx5o/AL4AHgBuPdwNr7S7gnoaOGWNqSsz8o97+SOA5IB64zFr7umd/BPAKMMPz/IcbuO1qa22DzxMRERGR0PPx1iz+918rKCitBMAYuP2bg7n+7D6NrjEULlqdDnl6CabifNP/l3qH7waKgB8YY06oL8YYkwJMA0qAF+odnggMBpbWJAQA1tpq4DZP80YT7v+VRURERMLcvz/fwzXPfeFNCNpFR/L0VaO5YULfsE8IwD89BZM923c9H8a9rLUFxphlOEnDGcAHJ3D/a4BY4AVrbW69Y+d4tu/Uv8hau8MYswVIB/oC2+ud0t0Y8z9AZyAb+NRau/YE4hMRERGRAFVVbXn47Y3846Od3n1dk2KZfc1YMnp0cDGywOKPpGCgZ7ulkeNbcZKCdE4sKbjBs336BJ+d7vlTPyk4z/PHyxiTCVxjrW3ZylUiIiIiEnCKyir5+f+t5v2Nh737TuuexOxrxpLWIc7FyAKPP5KCmhQrr5HjNfuTW3pjY8xEnA/+6621n/jp2cXA73AmGe/w7BuGM59hMvCBMWaEtbaoGfE1VnN0UFPXigQSlSYWEZFQczCvhOvmLmfDwXzvvqlDuvL4d0cQH6OluuoL9L+RH3m2z/jrhtbaIziViXwtNcZMBT4GTgeuB57w1zMbY4zBWkt1dTUREeE7213cV5MUaEyliIiEgnX78rj+hS85nF9bgPJ/JvTl1xcMIiJC73UN8UdSUPNtfGODsmr2158PcFzGmE441YNKgBdP9rOttZXGmGdxkoIJNCMpaGyRCE8Pwqimro+NjaW0tJSioiISExObOl3kpCkqcjrGYmNjXY5ERESkdd5Zf4hfvLyakooqAKIiDPdfnsF3x53icmSBzR9JwWbPNr2R4wM828bG/TemZoLx8w1MMD5Zzz7q2bbJqhWJiYmUlpZy6NAh56EJCRhj9G2ttAlrLdZaioqKvP8GlZyKiEiwstby9NIdPPLOJmpGxSbFRfH3q0ZzVv8Ud4MLAv5IChZ7tlONMRG+FYiMMYnAeJxx/J+18L41E4yPN3ToQ+AO4ALgId8Dxpi+OMnCbmrnDjTlDM+2uee3SqdOnSgqKqK4uJh9+/a1xSNFGhUfH0+nTp3cDkNERKTFyiuruXPhOl5ZXvt56tTO8cyZOZZ+qe1djCx4tHogu7V2O/Au0Bv4cb3D9+J86/6i78RdY8wgY0yjk3GNMWfjrD/Q2ATjGkuAjcAEY8ylPtdHAI94mn+3PrMojTGjPMfrP3MKzkJnAP88zjP9JiIigl69epGamkpcXJx6CKTNGWOIi4sjNTWVXr16aW6LiIgEndzicq6Z80WdhGBcn04svGm8EoIW8NdE45uAT4AnPR+uN+KMzZ+MM3Tnjnrnb/RsG/sU3KwJxtbaKmPMtTg9BvOMMfOAPcAUYAywDPhTvcv+CAwwxnwC1PzrGUbtmge/bSIR8auIiAhSUlJISVG3loiIiEhL7Mwq4rq5X7Ijq7Zo5IxRPXlwegaxUZEuRhZ8/JIUWGu3G2PGAPfhDOW5EDiIM1n3XmvtsebeyxjTEbiC408w9n3258aYsTi9ElOBRJwhQ/cBD1try+pd8iLOCsljgW8C0cBh4BXgKWvtR82NVURERETc8dmObG785wpyiyu8+249fyA3Teqn0RcnwG8lSa21e4Frm3luo/+lPAlEuxY+ewPwrWaeOxuY3ZL7i4iIiEjg+M/yvdy+YB0VVc4I8dioCP70nRFcOLSby5EFr0Bfp0BEREREBIDqasvv393M3zK3e/eltI/l2WvGMKJXi9fJFR9KCkREREQk4JWUV/HLV1bz9vpD3n2D0hKZPXMsPZJbNMhEGqCkQEREREQC2pH8Uq5/YTlr9+V5950zqAtPfm8k7WP1cdYf9LcoIiIiIgFrw4F8rn/+Sw7klXr3XTu+N3deNITICE0o9hclBSIiIiISkD7YeJifvbSKovIqACIjDPdceho/OONUlyMLPUoKRERERCSgWGuZs2wXD7y5gWrPErSJsVE89f1RTExPdTe4EKWkQEREREQCRkVVNfe8/hX/+nyPd1/Pju2YM3Ms6V0TXYwstCkpEBEREZGAkFdSwU/+vZKPtmZ59406JZlnrh5DSvtYFyMLfUoKRERERMR1e7KL+eHzX7LtSKF336XDu/PoFcOIi450MbLwoKRARERERFy1fFcOP3pxBTlF5d59N587gJ9PGYAxqjDUFpQUiIiIiIhrFq7az23z1lJeVQ1ATFQEv79iGJeN6OFyZOFFSYGIiIiItDlrLX96fytPfrDVu69zQgzPXD2a0ad2cjGy8KSkQERERETaVGlFFbfOW8uiNQe8+wZ0ac+cmWPp1SnexcjCl5ICEREREWkzRwvK+NGLy1m1J9e77+wBKfzl+6NIiot2MbLwpqRARERERNrElsMFXPvcl+zPLfHuu+qMU7jnktOIioxwMTJRUiAiIiIiJ92SLUf5yb9WUlBWCUCEgTsvGsK143urwlAAUFIgIiIiIifVi5/u4p5FG6iqtgAkxETy5ytHcs6gru4GJl5KCkRERETkpKiqtvzujQ3M/WSXd1/3DnHMnjmWwd2S3AtMvkZJgYiIiIj4XWFZJT/990oWbz7q3Te8Zwf+cfUYuiTFuRiZNERJgYiIiIj41f7cEq6b+yWbDhV49104NI0/fGsE7WIiXYxMGqOkQERERET8ZvXeXK5/fjlZhWXefT+e3I9bzhtIRIQmFAcqJQUiIiIi4hdvrj3IL19ZTVllNQDRkYaHpg/jitE9XY5MmqKkQERERERaxVrLXxZv47F3t3j3JcdH8/RVozm9b2cXI5PmUlIgIiIiIiesrLKKWfPXMX/lfu++vikJzJk5lt4pCS5GJi2hpEBERERETkhOUTk3vriCL3blePed2bczf7tqFMnxMS5GJi2lpEBEREREWmzbkUKue/5LdmcXe/d9Z0wvfnd5BjFRES5GJidCSYGIiIiItMgXO3O4/vkvyS+tBMAY+M0Fg/jRhL4YowpDwUhJgYiIiIg0W2VVNT97aZU3IWgXHcnj3x3B+aeluRyZtIaSAhERERFpto+2ZXEovxRwKgz987rTyejRweWopLU04EtEREREmm2BT5Whb4/ppYQgRCgpEBEREZFmKSit4N0Nh7ztaSN7uBiN+JOSAhERERFplrfXH6K0wlmteFBaIoO7JbkckfiLkgIRERERaRbfoUMzRvV0MRLxNyUFIiIiItKkA7klfLYzG4AIA5eN6O5yROJPSgpEREREpEkLV+/HWufn8f1T6JIU525A4ldKCkRERETkuKy1dYYOTR+lCcahRkmBiIiIiBzXVwfy2XqkEID4mEgtVBaClBSIiIiIyHHN9+kluOC0NOJjtP5tqFFSICIiIiKNqqyq5vU1tUnBNA0dCklKCkRERESkUR9tzSKrsByArkmxnNUvxeWI5GRQUiAiIiIijZq/qraX4PIRPYiMMC5GIyeLkgIRERERaVBBaQXvfnXI29bQodClpEBEREREGvT2+kOUVVYDMLhbEoPSklyOSE4WJQUiIiIi0qA6axOMVC9BKFNSICIiIiJfsz+3hM92ZgMQYeCyEd1djkhOJiUFIiIiIvI1C1ftx1rn5/H9U+iSFOduQHJS+S0pMMb0NMbMMcYcMMaUGWN2GWMeN8Z0bOb1k4wxthl/ejVw7RBjzCvGmCPGmFJjzGZjzL3GmHbHed5Zxpi3jDE5xpgSY8xaY8zNxpjI1vw9iIiIiAQ7ay0LfKoOTdcE45Dnl+XojDH9gE+ALsBrwCZgHPBz4AJjzHhrbXYTt9kF3NvIsaHAdGC9tXZvvWefDnwIRAPzgL3AOcBdwBRjzBRrbVm9ay4DXgVKgZeBHOAS4E/AeOBbTf/WIiIiIqFp/f58th0pBCA+JpLzT0tzOSI52fy1RvVfcRKCn1lr/1yz0xjzR+AXwAPAjce7gbV2F3BPQ8eMMS95fvxHvf2RwHNAPHCZtfZ1z/4I4BVghuf5D/tck+S5TxUwyVq73LP/tzjJxRXGmO9aa/+vGb+3iIiISMiZv2qf9+cLMtKIj/HXR0YJVK0ePuTpJZiK803/X+odvhsoAn5gjEk4wfunANOAEuCFeocnAoOBpTUJAYC1thq4zdO80Rjju8rGFUAq8H81CYHnmlLgTk/zf08kVhEREZFgV1lVzaI1B7zt6SN7uhiNtBV/zCmY7Nm+6/kw7mWtLQCW4XyTf8YJ3v8aIBb4j7U2t96xczzbd+pfZK3dAWwBTgX6NucaYClQDJxljIk9wXhFRIJGZVU1z360g2eWbqe62rodjogEgI+2ZpFVWA5A16RYzuzX2eWIpC34oy9ooGe7pZHjW3F6EtKBD07g/jd4tk+f4LPTPX+2N3WNtbbSGLMTOA0nkdh4vMCMMSsaOTToeNeJiASKB9/axJxlOwGIjYrkmrN6uxuQiLhuvs8E48tH9CAywhznbAkV/ugp6ODZ5jVyvGZ/cktvbIyZiPMhfr219hM/PfukxSsiEkxW7M7huU92ettvrjvoYjQiEgjySyt496tD3vY0VR0KG4E+a+RHnu0zrkbRCGvt6Ib2e3oQRrVxOCIizVZaUcVt89Z6a5ADrNh9jLySCjq0i3YvMBFx1TvrDlFW6YwGH9wtiUFpSS5HJG3FHz0FNd+sd2jkeM3++vMBjssY0wmnelAJ8KIfn31S4hURCSZ//nAr248W1dlXVW1Zti3LpYhEJBD4Vh2aoV6CsOKPpGCzZ5veyPEBnm1j4/4bUzPB+JUGJhi35tmNXmOMiQL6AJXAjhZFKyISJNbvz+PvS2pf4vql1haHW7zpiBshiUgA2J9bwmc7cgCIMHDp8O4uRyRtyR9JwWLPdqpnfQAvY0wizmJgxcBnLbxvzQTj4w0d+tCzvaD+AWNMX5wP/rup+wG/0WuACTiVkj6pv+CZiEgoqKiq5rZ5a6nyVBoa16cTj14x3Hs8c8tRVSESCVMLfSYYf2NAKl2S4lyMRtpaq5MCa+124F2gN/DjeofvBRKAF6213n5qY8wgY0yjFXqMMWfjrD/Q2ATjGktwKgRNMMZc6nN9BPCIp/l3a31HzTIPyAK+a4wZ43NNHHC/p/m34zxTRCRoPb1kOxsO5gMQGxXBIzOGMaJXMh3jnXkERwvKvMdFJHxYa1ngkxRMH6mhQ+HGXxONbwI+AZ40xkzB+aB+Os4aBluAO+qdX1Pqs7EaV82aYGytrTLGXIvz7f88Y8w8YA8wBRiDs0bCn+pdk2+MuQEnOcg0xvwfkANcilPpaB7w8nF/WxGRILT1cAFPfrDN2/7leen0SXGGDk1MT2XhamexoszNR8jo0di0KxEJRev357PtSCEA8TGRTD2tq8sRSVvzx/Chmt6CMcBcnGTgFqAf8ARwhrU2u7n3MsZ0xFl1+HgTjH2f/TkwFngNZz2EX+BMFr4POK+hYUDW2oU4qyEvxZnM/FOgAvgl8N16PQsiIkGvqtpy26trKa9yqooM79mB677Rx3t80sAu3p8Xbz7a5vGJiLteXVk7wfiCjDTiYwK9QKX4m9/+i1tr9wLXNvPcRlfBsNYeA9q18NkbgG+18JplwIUtuUZEJFg9t2wnq/Y4NRuiIw2PXjGcqMja74UmpKdiDFgLq/YcI7e4nOT4GLfCFZE2VFFVzaI1B7zt6SN7uhiNuMUvPQUiIhK4dmcX8di7m73tH0/uz8C0xDrndEqIYUQvZ83GagtLt6o0qUi4+GjrUbKLygFIS4rjzH6dXY5I3KCkQEQkhFlr+c2r6yitcIYNDUpL5KZJ/Rs8d1J67RCiTJUmFQkb81fWTjC+bGR3IiMaHdAhIUxJgYhICHvpi718usOZ1hVh4NErhhET1fBL/+RBqd6fl6g0qUhYyC+t4L0Nh71tDR0KX0oKRERC1IHcEh58a6O3fcOEvgzrmdzo+RndO5DS3plHkF1Uzrr9eY2eKyKh4Z11hyirdHoSh3RL+trQQgkfSgpEREKQtZY7FqyjsKwSgD4pCfzi3MYWf3dERBgmpvtWIdIQIpFQN39VbdWh6aO0NkE4U1IgIhKCFq7eX6e06CMzhhEXHdnkdZMG1g4hylRpUpGQtu9YMZ/tyAGc4YWXDu/uckTiJiUFIiIh5mhBGfcu2uBtX3PmqYzr06lZ104YkErNHMM1+3LJLvzaUi8iEiJeW11bhvQbA1LpkhTnYjTiNiUFIiIh5u7X15NbXAFAj+R23HbBoGZf2yE+mtGndgScNQuWblVvgUgostYy32fBshkaOhT2lBSIiISQd9Yf5K11h7zth6YPJSG2ZetU1lndeJOSApFQtG5/HtuPFgGQEBPJ1CFpLkckblNSICISInKLy7lz4Vfe9rfH9GRCeupxrmiY77yCpVuPUqXSpCIhx3dtggsyutEupuk5RxLalBSIiISI372xkSzPHIAuibHccdGQE7rPkG5JdEmMBSC3uILVe3P9FqOIuK+iqppFa2rnE6jqkICSAhGRkLB48xFe9RkffP/lGXRoF31C9zLG1KtCpNKkIqHko61HyS4qByAtKY4vmlYEAAAgAElEQVQz+nZ2OSIJBEoKRESCXEFpBXfMX+dtXzysG1NPa9344Mk+8wpUmlQktLzqM3TospHdiawpOSZhTUmBiEiQe+SdTRzIKwWgU0IM9156WqvvOX5AClGeDwrr9udxpKC01fcUEffll1bw3obD3vb0kT1djEYCiZICEZEg9un2bP752R5v++5LhtC5fWyr75sUV1uaFGCJegtEQsLb6w5SXlkNwGndkxiYluhyRBIolBSIiASpkvIqfjN/rbd97uAufl2RdPIgnyFEW5QUiIQC36pD00ZqgrHUUlIgIhKk/vjeZnZnFwOQGBvF/ZcPxRj/jQ32nVewdMtRKquq/XZvEWl7+44V8/nOHAAiDFw6wn9fIkjwU1IgIhKEVu05xuyPd3rbd148mLQOcX59RnrX9nTz3LOgtJKVe1SaVCSYvba6tgzp2QNS6ZLo39cMCW5KCkREgkxZZRW3zVtLzZpi3+ifwrfH9PL7c5zSpL5ViFSaVCRYWWuZ71O2WGsTSH1KCkREgsxfPtzG1iOFALSLjuSh6f4dNuRrss96BYs12VgkaK3dl8f2o0UAJMREMnVI68oWS+hRUiAiEkQ2HMjnr5nbve1fXzCQXp3iT9rzzuqfQnSkk3BsPJjPoTyVJhUJRgtW1U4wviCjG+1iIl2MRgKRkgIRkSBRWVXNba+uodIzbmjMqR25+szeJ/WZ7WOjGNenk7e9ZIuGEIkEm4qqahatqZ1PMENDh6QBSgpERILEMx/tYP3+fABioiJ45IphRLTBSqS+VYgWb9IQIpFgs3TLUbKLygHo1iGOM/p2djkiCURKCkREgsD2o4U8/v5Wb/vmcwfQL7V9mzzbd7Lxx9uyvAsfiUhwmO8zdOiyET3a5MsECT5KCkREAlx1teXX89Z6P4wP7dGBH53dt82e3y81gZ4d2wFQWFbJit3H2uzZItI6+aUVvLfhsLetqkPSGCUFIiIB7oVPd7Hc80E8KsLwyIxhREW23cu3MabOECKVJhUJHm+vO+j9QuG07kmkd010OSIJVEoKREQC2N6cYh55Z7O3fdOkfgzpntTmcUwe5FuaVEmBSLB4dWXt0KFpI9VLII1TUiAiEqCstcyav46SiioABnRpz4/P6e9KLGf2TSEmynnL2HK4kP25Ja7EISLNtzenmC925gAQYeDSEd1djkgCmZICEZEA9cryvXy8LQtw3tAfvWIYsVHu1BZvFxNZp2KJhhCJBL7XVtf2EkxIT6VLYpyL0UigU1IgIhKADuWVcv+bG73t677Rh5GndHQxonqrG6s0qUhAs9bWqTqkoUPSFCUFIiIBxlrLnQvXUVBaCUDvzvH88ryBLkdVtzTpJ9uzKKuscjEaETmetfvy2HG0CHAWIZw6JM3liCTQKSkQEQkwr685wPsba4fnPDxjGO1i3Bk25KtPSgK9O8cDUFxexZc7VZpUJFAt8OkluCAjLSBeQySwKSkQEQkg2YVl3Ltog7d91RmnBNTqo769BapCJBKYKqqqeX3NAW97uoYOSTMoKRARCSD3LNpATlE5AN07xPHrCwa5HFFdkwaqNKlIoFuy+aj3daRbh7iA+mJBApeSAhGRAPHuV4dY5PPt3oPTh5IYF+1iRF93Rt/OxEU7bx07jhaxJ7vY5YhEpD7foUOXjehBRIRxMRoJFkoKREQCQF5JBXcuXO9tzxjVs85QnUARFx3JWf1SvO3MLeotEAkkeSUVvLfxsLc9fZSGDknzKCkQEQkAD7y5gSMFZQCktI/ltxcPdjmixtUZQrRJSYFIIHl73UHKK6sByOiRRHrXRJcjkmChpEBExGVLtxzlleX7vO37Lz+N5PgYFyM6vknptT0Yn+7IprRCpUlFAkXdtQl6uhiJBBslBSIiLioqq2TW/HXe9oVD07ggo5uLETXtlM7x9EtNAKC0oprPdmS7HJGIAOzNKeaLnTkAREYYLh3e3eWIJJgoKRARcdGj72xif24JAMnx0dx7aYbLETWP73yHzM1a3VgkELy2uraX4OwBKaQmxroYjQQbJQUiIi75YmcOz3+629u++5IhQfMmPrlOUqB5BSJus9Yyf6Xv0CFNMJaWUVIgIuKC0ooqfv3qWm978sBULh8RPG/iY/t0JN6zQuqu7GJ2ZhW5HJFIeFuzL48dnv8P28dGMXVImssRSbBRUiAi4oI/vb/F+0G6fWwUD0wbijHBU0s8NiqS8f1rS5OqCpGIuxasrC1WcEFGGu08SbtIcykpEBFpY2v35fKPpTu87dsvHEz35HYuRnRifEuTZm7RvAIRt1RUVbNo7UFvW2sTyIlQUiAi0obKK6u5bd5aqq3TPrNvZ743rpe7QZ0g38nGn+3Ipri80sVoRMLXks1HySkqB6B7hzjO6NPZ5YgkGPktKTDG9DTGzDHGHDDGlBljdhljHjfGdDyBe40yxvzbGLPPc6/DxpglxpirGzg3xhhzmzFmjTGm2BiTb4z52Bjz7UbuPdMYY4/z58YT+f1FRJrjr5nb2HSoAIC46AgenhFcw4Z89Uhux0DPwkjlldV8ul2lSUXcsMBnbYLLRvYgIiI4X1PEXVH+uIkxph/wCdAFeA3YBIwDfg5cYIwZb61t1ruFMeYnwBPAMeBNYD/QCcgALgRe8Dk3BvgvMAnYBTyHk+hcCLxsjMmw1t7VyKNeA1Y3sH95c+IUEWmpzYcK+Mvibd72recP4tTOCS5G1HqTBqay+bCT5GRuPsqUwV1djkgkvOSVVPDexsPe9nRVHZIT5JekAPgrTkLwM2vtn2t2GmP+CPwCeABo8ht4Y8xU4EngPeAKa21BvePR9S75MU5C8ClwnrW2yHNeeyATuNMY87q1tqEP+guttXOb88uJiLRWZVU1t81bQ0WVM25o1CnJzDyrt7tB+cGkgV142jM/YvHmI1hrg7bnQyQYvbXuIOWV1QBk9EhigKf3TqSlWj18yNNLMBXnm/q/1Dt8N1AE/MAY05yvw34PlABX1k8IAKy1FfV2TfNsH6hJCDznFQL3Awa4qRnPFRE5qeYs28mafXkAxERG8OgVw4gMgS7+Mb070j7W+X5p37ESth8tdDkikfCyoM7aBD1djESCnT/mFEz2bN+11lb7HvB8sF8GxANnHO8mxpgMYBjwLpBjjJlsjPmVMeYWY8wUY0xDsdYU4d3RwLGafVMaeeQIY8zNxpjfGGN+YIzR/0kiclLsOFrIH97d4m3/bEp/+ncJjW/zoiMj+IZPaVKtbizSdvbmFPPFrhwAIiMMlw7v7nJEEsz8MXxooGe7pZHjW3F6EtKBD45zn7Ge7RGcoT8T6h1fZ4yZbq3d5rMvCxgA9AE21ju/r2d7ijGmnbW2pN7xn9drVxljngVuttaWHidOL2PMikYODWrO9SIS+qqrLb95dR1lnu79Id2S+J+J/VyOyr8mD0rlna8OAc4QouvP7tvEFSLiDwt9JhhPGJASNCuiS2DyR09BB882r5HjNfuTm7hPTW2764DewEWee6cD/wSGAm96JhfXeNOzvcMY4y3y7RmqdLvPeb7P3gn8FCeZSQC6A9/GGf70P8CcJuIUEWm2f32+u843eY9eMYzoyNCqBu1bmvSLnTkUlqk0qcjJZq2tU3Vo2igNeJDW8ddEY3+oeZeMBL5rrf3U0873lCIdBIwBZgAveY49AXwLOAv4yhjzFs48gosAi5OQdAC8w5qstUuAJT7PLQb+Y4z5DFgDfM8Y84i1dk1TAVtrRze039ODMKrJ31hEQtq+Y8U8/PYmb/vGiX3J6NHhOFcEp65JcQzulsTGg/lUVFmWbcvi/NPSmr5QRE7Ymn157PBZFX3qEFX+ktbxx9dVNT0Bjb3T1ezPbeI+NccP+SQEAFhrLU4JUXBKndbsLwS+ATwEVAI3AN8Blnr2R3r25zT1S1hr9wJveZr1hy6JiLSItZZZ89dRVF4FQL/UBH56zgCXozp5Jvuubqx5BSIn3YKV+7w/fzMjjbjoSBejkVDgj6Rgs2eb3sjxmnfBxuYc1L9PY8nDMc+2ne9Oa22htfZ2a226tTbWWptirb0aiAXaA2saqFrUmJp3suAuHC4irpu3Yh8fbc0CwBh49IrhIf2mPXlQ7RCiTE9pUhE5Ocorq3l9zQFve9oorU0greePpGCxZzu1foUgY0wiMB5niM5nTdznM5zypb0bKV+a4dnubGZcNasf/7uZ5wOc7tk2VM1IRKRZjuSX8rs3Nnjb157Vh9Gntnhx96AyslcySXHOiNSDeaXeBc1ExP+WbDnKsWLn+87uHeI4o09nlyOSUNDqpMBaux2njGhvnMXEfN2L8637i77rCBhjBhlj6lTosdYWA7OBOOB+47P6jTFmKDATZyjQPN/rjDFJ9WMyxpwH/BrYDjxd79iYBs6PMMbMAs7EqWj0zvF+ZxGRxlhruXPhevJLncm2p3SK51fnN9aRGjqiIiM4O11DiETawoJVtUOHLhvZg4gQWPNE3OevicY3AZ8ATxpjpuCUBz0dZw2DLcAd9c6vKR9a/1/xb3HG898MnGmMWQZ0BabjJAs3e5IQX5uMMWuBTUApzgTfc4FDwGW+yYjHl8aY9TiTivfjzHkYj9MTUQx831qb37JfX0TE8ea6g7y74bC3/fD0ocTHBFJNh5Nn8sAuvLn2IACLNx3hxhArvSoSCPJKKnh/4xFve/pIDR0S//DLO5W1drvnG/j7gAuAC4GDONWB7rXWHjve9T73yTfGnA3Mwqkq9BOcFY4/Bh6z1r7bwGX/8jzzLCAa2A08CjxqrW1ogvFjOJOVzwE64VQm2oOzGvMfrbUaOiQiJySnqJy7X/vK2/7euFM4y2dhr1A30aenYPnuY+SXVpAUF+1iRCKh5611Byn3rHsytEcHBnQNjYUQxX1++/rKU73n2mae22g/l6ei0B18vXehsfNvBW5tzrk+54uI+N19i74iu6gcgLSkOGZdGF7rGKYmxjK0RwfW7c+jqtqybGsW3xzaze2wRELKgpU+axOol0D8KLRW0BERcckHGw+zcHVtNZAHp2eE5bfkvqVJF28+cpwzRaSl9uYU11kM8dIR3V2OSEKJkgIRkVbKL63gjgXrve1pI3twzqDwXEhoUp3SpEdVmlTEj3xXMJ4wIIWU9rEuRiOhRkmBiEgrPfTWRg7llwKQ0j6Guy4e4nJE7hneM5mO8U4PyZGCMjYcVN0GEX+w1tZJCqaN6uliNBKKlBSIiLTCsm1ZvPTFXm/73ksz6JgQ42JE7oqMMExQaVIRv1u9N5edWU5BxfaxUUwdEp69kXLyKCkQETlBxeWV/Gb+Wm/7/NO6cuHQNBcjCgyTB9YOIVq8SfMKRPzBt5fgwqFpIb1CurhDSYGIyAn6/X83szenBIAO7aL53WUZ+Ky7GLYmpKdS89ewcs8x8jwrr4rIiSmvrGbRmtpCBtNGauiQ+J+SAhGRE7Bidw5zP9nlbf/24iF0SYpzL6AA0ikhhuE9kwGotrB0q4YQibTGki1HOeZJrnskt+P0Pp1cjkhCkZICEZEWKq2o4rZ5a6kprDMxPZUZo1Qv3FedIUQqTSrSKgtW7fP+fNmI7kREqEdS/E9JgYhICz35wVa2H3Um/CXERPLg9KEaNlTPJJ/1CpZuOUp1tUqTipyIvOIK3t9Qm1hP1xcQcpIoKRARaYH1+/N4eukOb/s3Fw6mR3I7FyMKTEN7dKCzpwpTVmE56w/kuRyRSHB6c91ByquqAef/q/5dEl2OSEKVkgIRkWaqqKrmtnlrqfJ86z2uTye+P+4Ul6MKTBERhom+qxtv0rwCkRPhO3Ro2kj1EsjJo6QgROQWl/PK8r387z9XcN+iDW6HIxKSnl6y3bsYV2xUBI/MGKaxvccxyWdeQeYWzSsQaam9OcV8uesY4KwBcumI7i5HJKFMSUGI2H60iNvmreXt9YdYtPYA1mr8rog/bT1cwJMfbPO2fzV1IH1SElyMKPBNGJBCTc60em8uOUXl7gYkEmR81yaYmJ5KSvtYF6ORUKekIESM6JVMx/hoAI4WlPHVgXyXIxIJHVXVllvnrfWO6x3eK5kffqOPy1EFvuT4GEad0hEAa50JxyLSPNbaOkmBhg7JyaakIERERhgmpteO3/1Qq4iK+M1zy3ayem8uANGRht9fMYxIDRtqFt8qRCpNKtJ8q/fmsjPLqXKWGBvFeUO6uhyRhDolBSFk8iDVBRfxt93ZRTz27mZv+yeTB5DeVdU/mst3XsHSLUe9k7RF5Pjmr6ztJfjm0DTioiNdjEbCgZKCEDIxPbXO+N3swjJ3AxIJctXVll+/upbSCmfY0KC0RP53Uj+Xowoup3VPokuiMw76WHEFa/bluhyRSOArr6xm0doD3va0kT1djEbChZKCEFJ//O4Sjd8VaZWXvtzDZztyAGeI3u+vGE5MlF42W8KYukMbMzW0UaRJmZuPkFtcAUCP5Hac3qeTyxFJONC7W4ipO4RISYHIiTqQW8JDb23ytm84uy9De3ZwMaLg5fu6lKkvK0Sa5DvB+LIR3VX6WNqEkoIQc47Pm++SzUeo9FRLEZHms9Zyx4J1FJZVAtA3JYGbzx3gclTB6xsDUrwTs9fuy+NogYY2ijQmr7iCDzbW9qhNH6WqQ9I2lBSEmEFpiXTrEAdAfmklK/do/K5ISy1Ytd/b02YMPHrFME3ya4WkuGjGnNrR29bQRpHGvbnuoLf88bCeHejfRYUNpG0oKQgxxpg61T5UhUikZY4WlHHfG7Wrgl9zZm/G9NZ43taqs7qxXpdEGrVg1T7vz1qbQNqSkoIQ5DuEaLEm9Ym0yN2vr/dO8OvZsR23nj/Q5YhCw+RBtZONl245qqGNIg3Yk13Ml7uOAU5xg0uGd3c5IgknSgpC0Fn9OhMT6fyn3XSogP25JS5HJBIc3l53kLfWHfK2H5o+lITYKBcjCh0Du9Yd2rhqr4Y2itTnO8F4YnoqKe1jXYxGwo2SghCUEBvF6X1rhzuoq16kabnF5fz2ta+87e+M6cXZA1KPc4W0hDO00ac0qV6XROqw1mrokLhKSUGImjxQQ4hEWuK+NzaQ5Vnwr2tSLLdfNNjliEJPnflOmzTZWMTXqr257MouBiAxNorzhnR1OSIJN0oKQpTvvIJl27IprahyMRqRwLZ48xHmr6zttr//8qF0aBftYkShaXz/FKIjndKkGw7mczi/1OWIRALHAp/XoAuHdlPFM2lzSgpCVO+UBPqmJABQUlHF5ztzXI5IJDAVlFZw+/x13valw7vrG7qTpH1sFGN9Kjkt0QKLIgCUV1azaO0Bb3ua1iYQFygpCGGTNIRIpEkPv72Jg3nON9adEmK4+5IhLkcU2iarZLLI12RuPuKtetYjuR3jVAZZXKCkIIT5DiH6cNMRrLUuRiMSeD7dns2/Pt/jbd9z6Wl0VrWPk8q3NOnHW7OoUGlSkTrDFy8f2Z0IzwrgIm1JSUEIG9unIwkxzpjEPTnF7MgqcjkikcBRUl7Fb+av9bbPHdyVS4Z1czGi8NAvtT09ktsBUFBWyYrdx1yOSMRdecUVfOjTmz9tZE8Xo5FwpqQghMVGRTK+f4q3rSFEIrX+8O5mdtdU+oiL4oFpGRijb+dONmNMnd4CDSGScPfGugOUe3rMhvXsQP8u7V2OSMKVkoIQV2d1Y735igCwas8x5izb6W3/9qIhdE2KczGi8OI7ryBTpUklzPlWHdLaBOImJQUhbrJPUvDFzhwKyypdjEbEfWWVVdw2by3Vnik2Zw9I4Vtj1F3fls70WXV98+ECDmjVdQlTe7KLWe4ZQhcVYbhkeHeXI5JwpqQgxHVNimNItyQAKqosH2/Vt3IS3p5ZsoOtRwoBiI+J5MFpQzVsqI3Fx9RfdV2vSxKeFqyq7SWYmJ5KigodiIuUFISBOkOI1FUvYWzH0UL+vHibt/2rqQPp1SnexYjCl0qTSriz1rJg1T5vW2sTiNuUFISByfXmFag0qYQjay13LFhPeWXthL5rzurtblBhbNLA2snGy7ZlUVapVdclvKzck8uummIHsVGcO1iLJoq7lBSEgRG9kukYHw3AkYIyvjqQ73JEIm3v1ZX7+XRHNgCREYYHpw0lUrXAXdMnJYFTOzu9NMXlVSzfpdKkEl58ewkuHNqNuOhIF6MRUVIQFiIjDBPTfUoAqjSphJmconIeeHODt/3D8b3J6NHBxYjEGFN3CJFelySMlFdW88bag962hg5JIFBSECZ8hxB9qPG7Embuf3MDx4orAOiR3I5fnJfuckQCdYcQaV6BhJPFm4+Q6/OaNK53pyauEDn5lBSEiYnpqdSMlFi9N5fswjJ3AxJpI8u2ZTHfpw74/ZdnEB8T5WJEUuOMvp2JjXLehrYfLWJvTrHLEYm0jfprE0RoKKMEACUFYSI5PoZRp3QEwFpYqtKkEgZKK6q4Y8E6b/uiYd3q9JqJu+KiIzmrX2dvO1O9BRIG8oor+NBnuJyGDkmgUFIQRuoMIVJpUgkDT324rba6R1wUd18yxOWIpL661dH0uiSh7411ByivcqqgDe/ZgX6p7V2OSMShpCCM+E7qW7L5CJWeFyWRULTlcAF/X7Ld2/7NNwfRJTHOxYikIZPSa1+XPtmeRWmFSpNKaJtfb+iQSKBQUhBGBndLpFsH50NRfmklq/bmuhyRyMlRXW2ZNX8dldXOmhxjTu3I98ae4nJU0pBTOsfTNzUBgNKKaj7fmeNyRCInz+7sIlbsdsrvRkUYLhne3eWIRGopKQgjxhgmDfQdQqTxuxKaXvpyj/eNNzrS8OD0oZrIF8BUmlTCxYJVtb0EE9NT6dw+1sVoROryW1JgjOlpjJljjDlgjCkzxuwyxjxujOl4AvcaZYz5tzFmn+deh40xS4wxVzdwbowx5jZjzBpjTLExJt8Y87Ex5ttNPOMaY8wXxphCY0yeMSbTGHNxS2MNNpMHar0CCW1H8kt5+O1N3vb/TOhHetdEFyOSpviWJl2yRfMKJDRZa+skBZpgLIHGL0mBMaYfsAK4FvgC+BOwA/g58KkxpvNxLq9/r58AXwJTgQ+APwALgEjgwnrnxgD/BR4BkoDngH8BvYCXjTH3NfKMx4C5QDfgH8A/gaHAIs/zQ9b4/inERDr/2TcdKuBAbonLEYn4171vbKCgtBKA3p3j+ck5/V2OSJoyrk8n2nlWc92ZVcTOrCKXIxLxv5V7ctntU/jg3MFdXY5IpC5/Fev+K9AF+Jm19s81O40xfwR+ATwA3NjUTYwxU4EngfeAK6y1BfWOR9e75MfAJOBT4DxrbZHnvPZAJnCnMeZ1a+1yn3ucBdwCbAfGWmuPefb/HiexecwY84a1dldzf/lgkhAbxel9O/HR1izAWUDl+6ef6nJUIv6xeNMR3vRZJfSBaUOJ83zYlMAVGxXJ+P4pvL/xMOCUJu2T0sflqET8a8Gqfd6fLxraTa9NEnBa3VPg6SWYCuwC/lLv8N1AEfADY0xCM273e6AEuLJ+QgBgra2ot2uaZ/tATULgOa8QuB8wwE31rrnR55pjPtfUxB+L0+MRsjR+V0JRcXkldy5c721PH9WD8f1TXIxIWsJ3CFGmSpNKiCmrrOINny8sVHVIApE/hg9N9mzftdbWqXHp+WC/DIgHzjjeTYwxGcAw4F0gxxgz2RjzK2PMLcaYKcaYhmJN82x3NHCsZt+UevvP8WzfaeCat+udE5LO8akLvmxbtkoASkh4/P2t7PcMh+sYH82dF2lNgmDimxR8uiObknK9LknoWLzpKLnFzveaPZLbMbZ3J5cjEvk6fyQFAz3bLY0c3+rZpjdxn7Ge7RGcoT8f4vQcPAa8D6w2xtQfHJzl2TbUz9zXsz3FGNMOwNNb0QMotNYebOCa5saK534rGvoDDGrO9W7pnZJAnxSn46akokolACXofXUgj9kf7/S2b79wMJ0SYlyMSFqqZ8d40rs6iziVV1bz6Y6sJq4QCR6+Q4emjeyhamgSkPyRFHTwbPMaOV6zP7mJ+9R8fX0d0Bu4yHPvdGonAr/pmVxc403P9o6aD/7g/fB/u895Nc/2V6xBT0OIJFRUedYkqPKsSXBm385cMbqny1HJifAtmawhRBIqcovL65QAV9UhCVSBtE5BTSyRwHettW9Za/OttVuBq4HlOAnCDJ9rngDWAGcBXxljnjLG/AX4Ckil9kP+SVm611o7uqE/wKYmL3aZ7xCiDzcdwVrrYjQiJ+6FT3exdp/zv3pMVAQPTMvAGH0LF4x8hxDpdUlCxRtrD1JR5fxbHt6zA/1S27sckUjD/JEU1Hzw7tDI8Zr9TS2fW3P8kLX2U98D1nlneM3THOezvxD4BvAQUAncAHwHWOrZH+nZXzM+xl+xBr2xfToSH+NUPtiTU8wOlQCUIHQgt4TH/rvZ2/7J5P701Rtu0BpzaifaxzpF8fYdK2H7Ub0uSfDzXZtg+ij1Ykrg8kdSUPOO3Ng4/AGebWNzDurfp7EP5DWVgtr57rTWFlprb7fWpltrY621Kdbaq3GqCLUH1tRULfJUKNoPtDfGdGtFrEEvNiqSb/hUZtEQIglGd7/+FUWeCan9u7Tnxon9XI5IWiMmKoLx/WuXtcncrNclCW67s4u8q6tHRRguGd7d5YhEGuePpGCxZzu1foUgY0wiMB4oBj5r4j6f4ZQv7d1I+dIMz3ZnA8caUrP68b/r7f/Qs72ggWu+We+ckOY7hGix3nwlyLyz/hDvbTjsbT80fSgxUYE0IlJOxGTNK5AQ4ttLMGlgqgogSEBr9TuotXY7ThnR3jiLifm6F0gAXvRdR8AYM8gYU6dCj7W2GJgNxAH3G59BwcaYocBMnKFA83yvM8Yk1Y/JGHMe8GucBcqernf4757tHcaYjj7X1MRfhrMycsjzndT3xc4cCssqXYxGpPkKSiu45/WvvO3vjeulEn8hwvd16fOd2RTpdUmClLW2TlIwbaSGDklg89eKxjcBn6AwR/0AACAASURBVABPGmOmABuB03HWMNgC3FHv/I2ebf3ZgL8FJgA3A2caY5YBXYHpOMnCzZ4kxNcmY8xanMm9pcAo4FzgEHCZbzICYK39xLPS8i+BtcaYeUAMzlyETsBPQ3U14/rSOsQxpFsSGw7mU1Fl+XjrUS7IaGhUlUhgeey/mzmUXwpASvtYfnPBYJcjEn9J6xDH4G5JbPS8Li3blsXU09KavlAkwKzcc4zd2cUAJMZFMWVwlyauEHGXX/raPR/UxwBzcZKBW4B+ONWBzrDWZjfzPvnA2cCDOB/QfwJcDHwMnG+tfaKBy/6Fs/bAD4GfA6cAjwIZ1tqvGjgfa+0tOKsWHwJ+hDPU6CvgEmvtU82JNVTUGUK0SV31EvhW7TnGC5/t9rbvumQIHeKjXYxI/K3O6sZb9LokwWn+ytpegouGdiMuOtLFaESa5q+eAqy1e3E+aDfn3EbrBXoqCt3B13sXGjv/VuDW5pxb77q5OElMWJs8KJWnFm8DnHkF1lqVc5SAVVFVzaz566ipVDkxPZVLhql3K9RMHtiFv2U6ncKZm/S6JMGnrLKKN9bWrpE6baTWJpDAp1l5YW5Er4509HzLeqSgjK8O5LsckUjjZn+8k02HCgCIi47g/su1JkEoGnVKMolxzndWB/JK2XK40OWIRFpm8aaj5JVUANCzYzvNeZKgoKQgzEVGGCam13bVqzSpBKq9OcU8/n5tteBfnJtOr07xLkYkJ0tUZAQTBvgMIVJ1NAkyC1bt8/48bWQPIiL05YUEPiUFwmTf1Y315isByFrLnQvXU1rhLE4+uFsSP/xGH5ejkpPJd16BSiZLMMktLudDny/YNHRIgoWSAmFieio1X2Ks3ptLdmGZuwGJ1LNo7UGWeCacGuOsSRAdqZevUDbRJylYvusYBaUVLkYj0nyL1h6kosqZ+DS8V7JWWZegoXdVITk+hlGnOEs2WAtLt6rahwSOvOIK7ltUW0js6jNOZUSvZBcjkrbQJTGOjB7OMjSV1U5pUpFgsGBl7dCh6eolkCCipECAekOIVJpUAsjD72wkq7AcgLSkOH51/kCXI5K24ru6sUomSzDYlVXEyj25AERFGC4Z3t3liESaT0mBAHXffJdsPkJlVbWL0Yg4vtiZw0tf7PW277n0NBLjtCZBuPBd3Thzi1OaVCSQ+a5gPGng/7d35/FRlWf/xz9X9o0kQAg7JBD2xZ1FUAi21LWtS5+fXdSq1Vq1q1attlr7uHZ52tpq7Wa1rm0Rt6rVKouCiAsoi+xh3yGQBLIn9++PM5lMIgkBJjkzme/79cpres+ZObmwSeZc577u6+5Bt/QkH6MROTJKCgSAEb270CszBYDSyloWb97vc0QS66pq67j1uaXB8WdH9uTM0drZNpYc3z+b7EDL5J2lVazYXuZzRCItc87x/EeNScH5J/TzMRqRI6ekQAAwMwqHNy7sm6XWpOKzP84tYu0urz99elI8d35+lM8RSUeLj7MmrUnVhUgi2aJN+9i4txyALikJnDEi9zDvEIksSgokqGn9rj58xT9Fuw8Ed9oGuPFzw+iTnepjROKX0JsV2q9AItnMRY2zBOeO7U1KYryP0YgcOSUFEjSpIIekQJvHlTvK2La/wueIJBY557jtuWVU13rrWo7rl8WlE/P8DUp8c/qQHjRsWr1o035KytWaVCJPVW0d/16yPThW6ZBEIyUFEpSenMD4QY1bsWuqXvww48MtLCjaC3jlI/dcMIZ47QYas7pnJDO2n9eCtq7e8fZadSGSyDN75S5KKryEtV/XVE4e2NXniESOnJICaUItAMVPew9UcfcrK4LjKyfnM6pPlo8RSSQoDN3dWH+XJAKFlg6df0Jf4nQjQ6KQkgJpYlrIfgXz1+6hsqbOx2gk1tz98gr2B8pD+man8r3PDPE5IokETVomr95Nfb1ak0rk2HewusnM+vnasEyilJICaSIvJ538nHQAKmrqWLi+2OeIJFbMW7OHmSE9vu86fzRpSQk+RiSRYkzfLLoH+r3vOVDF8m2lPkck0ujfS7dTU+clqsf1z2ZQjwyfIxI5OkoK5FPUhUg6WmVNHbc937gnwbljezf5OZTYFhdnTBmq1qQSmZ5btCX4vy88UbMEEr2UFMinhJYQzV6lXUSl/f1+1tpgf+/MlARuP2+kzxFJpJka8ndJrUklUmzYc5BFm7zNPhPijHPH9vE5IpGjp6RAPuWU/K6kJXn9lTfuLadoz0GfI5LObPXOMh6euy44vuWsEeR2SfExIolEpw/JoWHt5uLN+yk+WO1vQCLQpORx6rBcugXK3ESikZIC+ZTkhHgmF+QExyohkvZSX+/40cyl1AYWjp48sCsXn9Lf56gkEmWnJXHCAK/No3Pw9hp1IRJ/Oed4PiQpuEClQxLllBTIIRU2KyESaQ9Pv7+JDzfuAyAx3tuTQK38pCVNW5Pq75L468ON+9hU7JU9dklJaFJ6KxKNlBTIIYUu8nxvfTEHqmp9jEY6o12lldz36srg+JunD2Zozy4+RiSRbmrI36W31uyhTq1JxUehpUPnju1NSmK8j9GIHDslBXJIvbJSGNk7E4CaOse8NXt8jkg6mzv//QlllV6ymdc9jeunFfgckUS6kb0z6dElGYDig9Us2bLf54gkVlXV1vHyku3B8fkn9PMxGpHwUFIgLSocrql6aR+zV+5q8oF69/ljdJdNDisuzpjapDWp1hWIP2av3EVJhbfRYv9uqZw8sKvPEYkcOyUF0iK1JpX2UF5dy4+fXxYcX3BiXyaFLGwXaU1oCdFcrXcSn8xc1Fg6dP7xfbUWSjoFJQXSouP7dyU7LRGAXWXaRVTC49f/Xc3W/RUAdE1L5MfnaE8CabvJQ3KID1yAfbylhN1lVT5HJLFm38HqJg04zj9RpUPSOSgpkBbFN99FVCVEcoyWbS3hkfkbguPbzhmpvt5yRLJSEzkppFTjrdUqIZKO9e8l26ip82bOj++fTX5Ous8RiYSHkgJpVWgJ0SxN1csxqKt33Prc0mDHmFMHd+dC9fWWozA1pDXpHCUF0sFmam8C6aSUFEirTh/SI7iL6EfaRVSOwWPvbGDJlhIAkhLiuPv8MZipDleOXGjL5LdW76a2rt7HaCSWrN9zkMWbvK5XCXHGuWP7+ByRSPgoKZBWdU1vuovo3NWaLZAjt21/Bb96fVVw/O3CAk25y1Eb3qsLvTJTACipqOGjzWpNKh3juZBZgqnDclX+KJ2KkgI5rCYlRCs1VS9HxjnH7S8s52B1HQBDcjP45pTBPkcl0czMmpYQqTWpdADnHM+HJAUqf5TORkmBHJam6uVYvLZ8J2+s2Bkc33PBGJIS9KdHjk1oa9LZWu8kHeDDjfvYVFwOQGZKAtNG5B7mHSLRRZ/Mclgjejedql+sqXppo7LKGn764vLg+MvjBnBKXjcfI5LOYlJBdxLjvTUpy7eVsqu00ueIpLN7cuGm4P8+Z2wfkhO04aJ0LkoK5LDMrMnuxrPUmlTa6JevrWJH4GItJyOZW84c7nNE0ll0SUlskmCqC5G0p017y3nx423B8f87pb+P0Yi0DyUF0iahJUTar0DaYvGmffz93Y3B8e3njSQrsBmeSDg0XVegv0vSfh5+a12TdsrH98/2OSKR8FNSIG0yqSCHpHjvx2XljjK2BXakFTmUmrp6fjRzKc77DGXK0B6cN7a3v0FJpxN6s+Lt1Xuo0XonaQc7SiqZ8cGW4Pj6wgIfoxFpP0oKpE3SkxMYP6hxql4L+6Q1f523npU7ygBISYzjri+O1p4EEnYFuRn0zU4FoKyqlkUb9/kckXRGf367iOpAwnnCgGwmDu7uc0Qi7UNJgbRZ0xIi1e/KoW0uLuc3b6wOjr//maH075bmY0TSWTVvTTpbrUklzIoPVvNUyALj6wsLdINDOi0lBdJmhSH7Fcxfu4fKmjofo5FI5JzjtueXUVnj3VUb0TuTKybn+xyVdGahNyu0rkDC7ZF566kIfNYN79Wlyb49Ip2NkgJps/yc9OAutBU1dSxcX+xzRBJpXvx4G28FusCYwb0XjCExXn9mpP2cWtC9yXqn7SVa7yThUVpZw2MLNgTH12mWQDo5fVrLEVEXImnJ/vJq/vffnwTHl03MU4cOaXdpSU3XO2l3YwmXxxdspKyyFoBBOemcPUbNEqRzU1IgRyR0v4LZq3bhGtrLSMy779WV7DlQDUCvzBRumD7U54gkVkzVzQoJs4rqOh6Ztz44vmbqYOLjNEsgnZuSAjki4/K7kZbk7eK4cW85RXsO+hyRRIL31hfzzPubg+M7vzCKLinak0A6RmHIYuP5a/dQXavWpHJsnn5vE3sPejc5+mancv4JfX2OSKT9KSmQI5KcEM/kgpzgWHflpKq2jh/NXBIcTx/Zk8+N6uVjRBJr8nPSGRDocHWwuo4PNmi9kxy9qto6/vRWUXD8zSmDtDZKYoJ+yuWIhXYh0n4F8vCcItbt9maMMpITuPMLo3yOSGKNmTWZLdDfJTkWzy3ayo7SSgByMpL5n5P7+xyRSMdQUiBHLHSx8XvrizlQVetjNOKnot0HeHD22uD4xulD6Z2V6mNEEqumNrlZocXGcnRq6+r5w9x1wfE3TssnJTHex4hEOk7YkgIz62dmj5jZNjOrMrMNZvYbM+t6FOc60cyeMrMtgXPtNLO5ZnbpIV4bb2ZfNbO3zWyHmZWb2Woz+5uZfeqWpZlNNTPXytd9R/vfIFb0ykphZO9MAGrqHPPW7PE5IvGDc47bnlsW3OnzuP7ZXDIxz9+gJGZNHNSd5ATvI23trgNsLi73OSKJRi8v3c7Gvd7PTlZqIl+bMNDniEQ6TkI4TmJmg4F3gFzgBWAlMA74LnCmmU1yzu1t47muB34L7ANeBrYC3YDRwNnA35u95Sngf4AtwEygDBgDXAZ8xczOcs7NOsS3mgvMOcTz89oSZ6wrHN6DT7aXAt66gjNHq4Y81sz4cAsLirxf6/g4457zR6s7h/gmJTGeiYO7B1uSzlm9m0t0QSdHoL7eNZn5/PqpeWQkh+UySSQqhOun/SG8hOA7zrnfNTxpZv8HfB+4G7jmcCcxs+nAA8B/gYucc2XNjic2G5+ClxAsB8Y558pDjl0OPAL8GDhUUjDHOffTtvzj5NOmDc/lwdneFGtDa1Jt6hI79h6o4u5XVgTHV07OZ1SfLB8jEvFKG4NJwcpdSgrkiPx3xU5W7zwAQHpSPJdPyvM3IJEOdszlQ4FZgunABuDBZofvAA4Cl5hZehtO9wugAvhK84QAwDlX0+ypQYHHN0MTgoAXAo89kLA7vn9XstO8HG1XWRXLt5X6HJF0pLtfXsH+cu/XsW92Kt/7zBCfIxKBqSGLjd9Zt5fKmjofo5Fo4pzjoZBZgq9NGEh2WpKPEYl0vHCsKSgMPL7unGvSHDpwYT8fSAMmtHYSMxsNjAVeB4rNrNDMbjSzG8zsDDM7VKzLA4/TzKz56sZzA49vtPAtC8zsejO71cyuMDNd1RyB+DhjytCQbh9qTRoz5q3Zw8zFW4Pju84fTVqSptjFfwO7pzMox7v/VFFTx3vr1ZpU2mbe2j18vKUEgKSEOK6cnO9zRCIdLxyf5MMCj6tbOL4GbyZhKPBmK+c5JfC4C6/W//Rmx5ea2QXOuWAq75xbZma/xitRWmlm/8ZbUzAKOBN4Bq986FC+GvgKMrNngaucc/taiTP09R+2cGh4W94f7aYNz+WFj7YBXgnRt89QXtXZVdbUcdvzS4Pjc8f2btKNSsRvU4flUrTH24l29qpdnD5Uk8VyeL+f1ThL8P9O7k9uZoqP0Yj4IxwzBQ2FxCUtHG94Pvsw52m4srgSyAPOCZx7KPAE3uLhl82syXyec+4HeOsVegDXAjfjzRJ8DDzmnGu+5e5u4JbA+boE3ncWsBi4EHiphVkJaeb0IT1oWFe6ePN+igO7P0rn9btZa4KdOTJTErj9vJE+RyTSVOHwxiRgrlqTSht8sKGYhYFZpYQ445tTBh3mHSKdUyRd/DbEEg9c7Jx7xTlX6pxbA1wKfICXIFzY8AbzPIC3luFnQH+8C/3TAAe8ambXhX4T59xy59z9zrllzrkDzrk9zrn/AFOB9cAk4Ly2BOycO+lQX3jdlzq9rulJnDDA6zjrHMxdrRKizmzVjjL+OLdxl89bzhpBbhfdTZPIMi6/G6mBvvJFew6yYU/z+0IiTf0+ZC3BF0/oS7+uaT5GI+KfcCQFDTMBLbUeaXh+/2HO03B8h3NuQegB55yjceHwuJBDlwHfBh5wzt3nnNsSuNCfh3dhXwHcZ2YZh/tHOOdK8dqbwqdLl6QF00I3DFqpu3KdVX2949bnllJb7wA4eWBXLj5Fu3xK5ElOiGdSQffgeI52N5ZWLNtaEuxYZQbfmjrY54hE/BOOpGBV4HFoC8cbCs1bWnPQ/DwtJQ8Ndf6hC4obFhPPbv5i59wOvDv2GTSuezichqvatnRKEpp2+5i7eje1dfWtvFqi1VPvbeLDjd6vYGK8ce8FY4jTngQSoaaGrHOZs1o3K6RlD81pnCU4e3RvBvc47D1EkU4rHElBwwX59Oa1+GbWBa8cpxx49zDneRevfWleC+1LRwce14c8lxx4bGklWcPzbS12b+iQVNTqqyRoZO9MegUWZJVU1LB48+EmhCTa7Cqt5P7/NFbEXTNlMEN6dvExIpHWhd6sWLBuLxXVak0qn7Z2VxmvLtsRHF9bqFkCiW3HnBQ459bhtRHNA65rdvhOvLvuj4cu+DWz4WbWpENPYJ+BvwIpwF0WshOWmY0Bvg7UAjNC3vZ24PEHZtakfMnMrgH6ATuAT0KeP/lQ/w4z+xrw//ASiH+29m+WRmbWZGGfWpN2Pne+9AlllbUA5Oekc11hgc8RibSuX9c0huR6d3yraut5N7Dztkioh+asw3kVkUwbnqsNGCXmhau5+LXAO8ADZnYGsAIYj7eHwWrgtmavb9gKtXn9wU/w6vm/B0w0s/lAT+ACvGThe4EkpMFDeG1FxwKrzexFvPKjE4FpQB1wnXMu9DbRDDOrxVu4vCVw3lPw1irUAt90zm04iv8GMWvqsFyefm8zALNW7uKmM2OiI2tMmLVyJy8v3R4c3/3F0aQEFnGKRLLC4bms2eXtTjtn1S4Kh6t1rjTaXFwebKkN6GaHCGHqPhS4UD8ZeBQvGbgBGAz8FpjgnGvTbZrAYt/TgHuAbsD1eOsG5gGfc879ttnrD+CVJ90BbAe+gpdQjAD+BZzqnJvZ7Nv8gcYuQ9cB3wByArGf7Jx7tM3/cAFgckEOSfHej9LKHWVs21/hc0QSDuXVtfzk+eXB8YUn9uPUghwfIxJpu6mhmyuu2o1ruCUsAjw8dx11gcYJEwd156SBXX2OSMR/YduG1Dm3Gbi8ja9tcYVi4EL/Nj49u9Da638W+GrL6+8H7m/La6Vt0pMTGD+oG2+v2QPAnFW7+cr4AT5HJcfq1/9dzdZAgtc1LZHbzhnhc0QibXdyXjfSk+I5WF3HpuJyivYc1CJSAbx1Uv/6YEtwrFkCEU8k7VMgUSy028csrSuIesu2lvDI/A3B8Y/PGUm39KSW3yASYZIS4pg8pHFma442MpOAP79dRHWgU95x/bObtLAViWVKCiQsQvcrmL92D5U16vYRreoCexI0TK2fOrg7F5zY1+eoRI5ck9ak2q9AgH0Hq3ly4abg+PrCAkL6mojENCUFEhb5Oenk53idZCtq6ngvsGW8RJ/H3tnAki3enoRJCXHcff4YfWhKVAptTbqwqJiDVbU+RiOR4G/z11MeaFE7vFcXztACdJEgJQUSNqEfwCohik7b9lfwq9dXBcffLiwIJnsi0aZ3VirDe3l7alTX1fPOOrUmjWVllTU8+s6G4PjawgJtwigSQkmBhE1oCdHsVbvU7SPKOOe4/YXlHAzcRRuSm8E3p2gzH4luKiGSBk+8u4nSwJ4red3TOGdMb58jEoksSgokbMbldyMtyethv3FvOev3HDzMOySSvLZ8B2+s2Bkc33PBGJIS9CdColthyAzmHLUmjVmVNXX8dV5RcPytqYOJ1yyBSBP6xJewSU6IZ1JIH3uVEEWP0soa7nixcU+CL48bwCl53XyMSCQ8ThzYlS4pXvftrfsrghuaSWx55r1N7DlQDUCfrBTOP6GfzxGJRB4lBRJWzUuIJDr88rVV7CytAiAnI5lbtCu1dBKJ8XGc1qQ1qf4uxZrq2nr++FbjLMHVpw/SLKjIIei3QsKqMKR+9731xRxQt4+It2jTPh5/d2NwfMd5I8lKS/QxIpHwCl1XMHul9iuINc8t3sL2kkoAcjKSuHicNtcUORQlBRJWvbJSGNE7E4CaOse8wC7HEplq6uq5deZSGsqspw7rwbljtfhOOpepQxvXFby/oZiyyhofo5GOVFtXzx/mrAuOr5w8iJTEeB8jEolcSgok7KYNb/wAnq11BRHtL2+vZ+WOMgBSE+P53y+M1p4E0unkZqYwuq93s6K23jF/rVqTxopXlu1gw95yADJTEvjaBM0SiLRESYGEnVqTRodNe8v57Zurg+Pvf3YI/bul+RiRSPuZOlStSWNNfb3jodlrg+Ovn5pHlxSVRoq0REmBhN3x/buSHahJ31VWxfJtpT5HJM055/jxC8uorKkHYGTvTK6YlO9zVCLtp3C4WpPGmjdX7grOhKYlxXO5/saJtEpJgYRdfJwxZahKiCLZix9v463V3oLLOIN7LxhDQrz+HEjnFXqzYkdpZfBiUTon5xy/D5kl+Or4AXRNT/IxIpHIp6sAaRdqTRq59pdX87///iQ4vnRiHsf1z/YxIpH2Fx9nnDYk5GaF/i51avPX7uXjzfsBSIqP46rTBvkckUjkU1Ig7eL0IT1o2Cxy8eb9FB+s9jcgCbrv1ZXBTXx6ZaZww/ShPkck0jGa7G6s1qSd2oMhswRfOrkfuZkpPkYjEh2UFEi76JqexAkDugLgHMxdrbtykeC99cU88/7m4PjOL4zSwjuJGacP7UFDc60PN+2jpEKtSTujDzfuY0GR12EqPs64ZspgnyMSiQ5KCqTdhN6V04ZB/quqreNHM5cEx9NH9uRzo3r5GJFIx8rJSGZs3ywA6uq1j0pnFTpL8IXj+6irmkgbKSmQdlMYsq5g7urd1NbV+xiNPDyniHW7DwKQkZzAnV8Y5XNEIh2vye7GWlfQ6SzfVsKsQHMLM7h2aoHPEYlEDyUF0m5G9s6kZ2YyACUVNSwOLPqSjrdu94Emd89unD6U3lmpPkYk4o/mNyvq69WatDN5aHbj7sVnje5FQW6Gj9GIRBclBdJuzIzC0Ltyak3qi/p6x49mLqU6MFNzXP9sLpmY529QIj4Z2zeLboHWlLvLqvhku/ZR6SzW7T7AK8u2B8eaJRA5MkoKpF2F3pWbpaTAF08u3Mh764sBb9HdPeePJr6hNZRIjInTPiqd1h/mrKNhT7qpw3owOrB+RETaRkmBtKvJBTkkxnsXoCt3lLFtf4XPEcWWzcXl3PvqyuD4W1MGM6qPPigltk0NbU26Wk0QOoMt+8p5fvHW4Pj6Qs0SiBwpJQXSrtKTExif3z04nrNKH8AdxTmvbKi8ug6AgtwMvn2GPihFmuyjsmkf+7SPStT749wiagPrQ8bnd+PkvG4+RyQSfZQUSLtTCZE//vnBZuat9Vouxhn84qKxJCfE+xyViP+6pidxfGAX73oHb63RzYpotqu0kn980Lj/yvXTdPND5GgoKZB2Ny0kKZi/dg9VtXU+RhMbtpdUcNe/VwTH3zhtUHAzORGhSRMEzWBGt7/MW091baCRQr8sJhfk+ByRSHRSUiDtLj8nnbzu3uYxFTV1LCwq9jmizs05x60zl1JWVQt4//1/8NmhPkclEllC9ytQa9Lotb+8mife3RgcX1tYgJkaKYgcDSUF0iFUQtRxnv9oK7MDdz7N4P4Lx5KSqLIhkVCj+mSSk+Hto1J8sJolW0t8jkiOxt/mbwiumxraM4PPjujpc0Qi0UtJgXSI0BKiOdpFtN3sKqvkpy9+EhxfNjGPcflacCfSXFycNelCpNak0edAVS2PvrMhOL6usIA4tVsWOWpKCqRDjMvvRlqSd7d6w95yinYf8Dmizsc5x0+eX0ZJRQ0A/bqm8sPPDfM5KpHI1WRdgVqTRp0n3t0Y/Hs3sHsa54zp7XNEItFNSYF0iOSEeCaFLP5SCVH4vbJ0B68t3xkc33/hWNKTE3yMSCSyTR6SE9zIb8mW/ew5UOVzRNJWlTV1/OXt9cHxt6YMJiFelzQix0K/QdJhmpYQ6a5cOO09UMXtLywLjr88rn+TJExEPi0rNZGTAl25nIO3NFsQNf75weZgEtcrM4XzT+zrc0Qi0U9JgXSY0Prdhev3ciDQHUeO3Z0vfcLewAZMvbNS+NHZI3yOSCQ6TB0esruxblZEhZq6ev44tyg4vvr0QdqDRSQMlBRIh+mdlcqI3pkA1NQ55q3Z43NEncPry3fw4sfbguN7zh9DZkqijxGJRI+pQ5u2Jq1Ta9KI99zirWzdXwFA9/QkvjxugM8RiXQOSgqkQ01rcldO6wqOVUl5DT9+vrFs6IIT+zZp/yoirRvRuws9M73WpCUVNXy0eZ/PEUlr6uodf5izLji+YnI+qUmaJRAJByUF0qFCu33MXrUL53RX7lj878ufsKvMq6vt0SWZ288d6XNEItHFzLS7cRR5Zel21u85CECXlAQumTjQ54hEOg8lBdKhThjQlew0r7RlZ2kVy7eV+hxR9JqzahczPtwSHN/1xdFkpyX5GJFIdGqyX4FmMCOWc44HZ68Nji+bmKdSSZEwUlIgHSo+zpgyVCVEx6qssoYfzVwaHJ87tjefG9XLx4hEotekghwSAq1Jl20tZVdZpc8RyaHMWrmLlTvKAEhNjOeKyfk+RyTSuSgpkA4XOlWv/QqOzr2vrmR7GGs+IwAAIABJREFUiXfh0i09iTs/P8rniESiV5eURE7Ja9z5e65KiCKOc47fh8wSfGX8ALqla2ZUJJyUFEiHmzK0Bw070S/evJ/iQCtNaZt31u7hqYWbguM7Pz+K7hnJPkYkEv1CS4i0riDyLFi3l8Wb9gOQFB/H1acP8jkikc5HSYF0uK7pSZygDYOOysGqWm6euSQ4nj6yJ+eO7e1jRCKdQ2jXrrfW7Ka2rt7HaKS50FmCi07uR8/MFB+jEemclBSILwpD7sqphKjtfvHaKjYXe/25s1ITueuLozEzn6MSiX5DcjPom50KQFllLYsCd6XFf4s27eOddXsBb13aNacP9jkikc5JSYH4IvSu3NzVuivXFu9vKOaxBRuC49vPHUmu7paJhIWZMUVdiCLSQyGzBJ8/rg8Duqf5GI1I56WkQHwxsndmsw2DdFeuNZU1ddw8YwkN2zpMHdaDC07s629QIp1Mk31UNIMZEVZsL+WNFY3/X1w7VbMEIu1FSYH4ovmGQSohat2v/7uaooYNe5ITuPeCMSobEgmzUwd3Jyne+1hcuaOMR+ev9zkiCd2X4MxRvRjSs4uP0Yh0bmFLCsysn5k9YmbbzKzKzDaY2W/MrOtRnOtEM3vKzLYEzrXTzOaa2aWHeG28mX3VzN42sx1mVm5mq83sb2bWYp9GMzvXzOaYWYmZHTCzhWZ22ZHGKkcvtIRISUHLPtq8nz+/XRQc33rOCHpnpfoYkUjnlJ6cwFljGvf7+OlLn/DYOxv8CyjGFe0+wMtLtwfH1xUW+BiNSOcXlqTAzAYDHwKXA+8BvwaKgO8CC8ys+xGc63rgfWA68CbwK+A5IB44+xBveQp4AsgDZgK/A9YClwGLzGxaC9/jJWB04L1/BvoAj5rZL9saqxybSQU5JMZ7d7tX7ihje0mFzxFFnqraOm6a8TH1gbKhSQXdufiU/v4GJdKJ3fXF0Zw4IDs4vuPF5fx9wQbf4ollf5izLlgyOWVoD8b0y/I3IJFOLlwzBQ8BucB3nHNfdM7d4pybhpccDAPubstJzGw68ADwBpDvnLvMOXerc+4a59xk4JJmrz8F+B9gOTDMOXetc+5m59zZwJVAEvDjZu/JA34JFAMnO+euc859HxgLrANuMLOJR/VfQY5IRnIC4/Mb88XZK9WatLnfz1rL6p0HAEhLiue+C8aqbEikHXVJSeSxK8Y1SQxuf2E5jy/Y4FtMsWjr/gqeW7w1ONYsgUj7O+akIDBLMB3YADzY7PAdwEHgEjNLb8PpfgFUAF9xzpU1P+icq2n2VMPuJW8658qbHXsh8Nij2fNXAMnA751zG0LOvQ+4JzC8pg2xShiohKhly7aW8NCcdcHxzWcOp383dd0QaW8NicEJIYnBT15YzuPvbvQxqtjyp7nrqA1MkY7L68a4/G6HeYeIHKtwzBQUBh5fd8416SsZuLCfD6QBE1o7iZmNxrtb/zpQbGaFZnajmd1gZmeY2aFiXR54nGZmzYuszw08vtHs+YZyov8c4nyvNnuNtLPQ/Qrmr91DVW2dj9FEjpq6em6asYS6kA/FSyYM9DkqkdjRJSWRvzdPDJ5fxhNKDNrd7rIqnnl/c3B83TTNEoh0hHAkBcMCj6tbOL4m8Dj0MOc5JfC4C5gDzMKbOfgl3oX9R2bW5C+Dc24ZXonSaGClmT1oZveZ2UvAX4FnaFY+1Fq8zrnteDMb/cxMt2Q7wKAeGeQFek5X1NSxsKjY54giw8Nz1vHJ9lIAkhPiuP+iscTFqWxIpCM1zBgc378xMfjx88t4cqESg/b0l3lFVNV69xjH9M3i9CE5PkckEhvCkRQ0rPwpaeF4w/PZLRxv0FBHciXeouFzAuceircYeAzwspklhb7JOfcDvHKfHsC1wM14swQfA4855w4eZbyHXdFkZh8e6gsYfrj3SiOVEDW1emcZD8xaExzfOH0Y+Tltqb4TkXDLTEnk71c2TQxue24ZTy3c5GNUndf+8mqeWNCYdF1XWKB1VCIdJJL2KWiIJR642Dn3inOu1Dm3BrgU+AAvQbiw4Q3meQBvLcPPgP5AF+A0wAGvmtl1HfhvkKMQul/BnBjfRbS2rp4f/utjauq8sqHj+mdzxeR8n6MSiW0NicFxIYnBrc8tVWLQDh59ZwMHq70y0iG5GUwf2dPniERiRziSgsPdWW94/nBb1jYc3+GcWxB6wDnnaFw4PC7k0GXAt4EHnHP3Oee2OOcOOOfmAefhLVq+z8wyjiLelmYSQuM66VBfwMrDvVcajR/UjbSkeAA27C2naPcBnyPyz1/nrefjLd6PXlJ8HL+8aCzxKhsS8V1mYI3BcSFtMW99bilPv6fEIFwOVNXyt/kbguNrCwerbFKkA4UjKVgVeGxpzcCQwGNLaw6an6el5GFf4DF0QXHDYuLZzV/snNuBd3GeQeM6gtDv86l4zaw3kA5sOUQ3I2knyQnxTCporBmN1RKidbsP8Kv/Nv6afPczQ7R7p0gEyUpN5O9Xjm+SGPxo5lKeUWIQFk8t3EhJhddkcEC3NM4b28fniERiSziSgoYL8unNOwSZWRdgElAOvHuY87yLt8g3r4X2paMDj6H7zicHHpu3HaXZ89Uhz80KPJ55iNef1ew10kGalhDF3n4F9fWOm2csoTqwuG5Un0yuPn3QYd4lIh2tITEYG5IY3DJzKf94X4nBsaisqePPbzd+vF8zZTAJ8ZFU4SzS+R3zb5xzbh1eG9E8oHn9/p14d94fD13wa2bDzazJYtzAnfm/AinAXRayssjMxgBfB2qBGSFvezvw+AMza1IOZGbXAP2AHcAnIYf+BlQB1wc2Mmt4fVfg1sDw4db/1RJuhcMb87qF6/dyoKrWx2g63mMLNvDBRm8yLCHO+MVFx5GoD0SRiJSVmsjjV4xnTN+micE/Q9poypH51web2V1WBUCvzBQuPKmvzxGJxJ5wXXVci9dK9AEze97M7jWzWcD38cqGbmv2+hWBr+Z+AnwEfA9YYGa/MrMngIV4ycKNgSSkwUPAEmAUsNrM/mxmvzCzN4E/AHXAdc65YPN759x64IdAN+CDQBvTXwfOMxj4VfM1DdL+emelMqJ3JgA1dY55a/b4HFHH2bS3nJ//Z1VwfG1hASP7ZPoYkYgcTlZaIk9c2ZgYOAc3z1zCPz9QYnCkaurqeXhuUXB81emDSE6I9zEikdgUlqQgcKF+MvAoMB64Ae8C+7fABOfc3jaepxSvc9A9eBft1+OtG5gHfM4599tmrz+AV550B7Ad+ApeQjEC+BdwqnNu5iG+z++Az+NtfnYpcDXejMLXnXM3HsE/XcIodCOzWOlC5Jzj5meXUFHj5a3Denbh+kJt1CMSDRoSg9F9vSTeObj52SX8S4nBEXnho21s3V8BQLf0JL48rr/PEYnEpoRwncg5txm4vI2vbbGdQOBC/zY+PbvQ2ut/FvhqM+fcS8BLR/IeaV/Thufy0BxvImj2ql045zp9f+qn3tvEgiIvZ44z+PlFY0lKUNmQSLRoSAy++peFLN9WinNw07NLMDMuOqmf3+FFvLp6x0Nz1gbHV0zKIy0pbJcmInIEdPUhEeOEAV3JTksEYGdpFcu3lfocUfvaur+Ce19p7F579emDm/RBF5HokJ2WxJPfGM+oPo0zBj+c8TEzPtzic2SR7z/LdlC021ty2CU5gUsm5vkbkEgMU1IgESM+zjh9SGyUEDnnuHXm0uCC6kE90vneZ4Yc5l0iEqkaEoORvZsmBs8qMWiRc47fz26cJbj01IFkpSb6GJFIbFNSIBFl2vDG1qSdeb+CZxdtZe5qr/WqGfziorGkJGphnUg0O1RicOOMj5m5SInBocxetYsV270Z4ZTEOK6YpN3bRfykpEAiypShPWhYRrB4836KD1a3/oYotLO0kp+9tDw4vvzUfE4a2M3HiEQkXLqme4nBiJDE4IZ/fcxzi5UYhHLO8ftZjbMEXx43gO4Zya28Q0Tam5ICiShd05M4IVBX7xy8tbpzbWTmnOO255ZRWumVDQ3olsaNn2tpM3ARiUYNicHwXt6O5M7BDf9UYhDq3aJiFm3aD0BivGmzRpEIoKRAIk5nLiF6acl23lixMzi+/8Kx6rQh0gl1S0/iqasmBBOD+kBi8PzirT5HFhkeDFlLcNFJ/eidlepjNCICSgokAhWGJAVzV++mrt75GE347DlQxR0vLAuOvzZhABMHd/cxIhFpT4dKDH7wz4944aPYTgw+2ryfeWu9DSrjDK6ZMtjniEQElBRIBBrZO5OemV5taUlFDYs37fM5ovC448Xl7CuvAaBvdiq3nDXC54hEpL11a1ZKVO/g+/+I7cQgdC3B54/rw8Du6T5GIyINlBRIxDEzCod1rhKi/yzbzstLtgfH91wwhoxklQ2JxILuGck8+Y3xDOupxGDljtImJZTfmqod3EUihZICiUihJUSzV0X3YuN9B6v58fON3Yb+5+R+TBnao5V3iEhn0z0jmSevGs/QnhlAY2Lw4sfbfI6sYz00e13wf08f2ZNhgRkUEfGfkgKJSJMKckiM93qTrtheyvaSCp8jOnr/++9P2HOgCoDcLsncds5InyMSET/kZCTz1FUTmiQG33tmMS/FSGKwYc9B/r2k8d96/TTNEohEEiUFEpEykhMYn9+4CHf2yuicLZi1ciczQ7qN3HP+GO3YKRLDGhKDIbkhicE/PmpysdxZ/WHOOhr6Rpw2JIex/bL9DUhEmlBSIBFr6rDGEpvZq6JvXUFpZQ23zmzsNvTF4/vwmZE9fYxIRCJBTkYyT1/dmBjU1Tu++8xHTdYddTbb9lcwM2SfhusLNUsgEmmUFEjECt2vYP7aPVTV1vkYzZG75+UV7CitBCAnI4k7zhvlc0QiEimazxjU1Tu+88ziTpsY/OmtImrqvGmCU/K6Mn6Q2jGLRBolBRKxBvXIIK97GgDl1XUsLCr2OaK2e3vNbp55f3Nw/LMvjKZrepKPEYlIpOnRxUsMCpolBq8s7VyJwZ4DVTz93qbg+FrNEohEJCUFEtGmDgvtQhQdJUQHqmq55dmlwfFZo3tx9pjePkYkIpHKSwzGM7iH16u/rt7x7acX82onSgz+Om89VbX1AIzum8lUdV8TiUhKCiSihZYQzY6S/Qp+/p+VbN3vdUvKTkvkZ18Y7XNEIhLJcruk8PTVEz6VGPxnWfQnBiXlNTy+YGNwfN3UAszMx4hEpCVKCiSijR/UjdTEeAA27C2naPcBnyNq3cKivfw95APwp+eNokeXZB8jEpFokNslhaevmsCgQGJQW++4/qnF/GfZDp8jOzaPLdjAgapaAApyM/jcqF7+BiQiLVJSIBEtOSGeSQU5wXEkb2RWUV3HTc8uCY7PGJ7LF47v42NEIhJNcjNTeOZTicGiqE0MDlbV8sj89cHxtVMHExenWQKRSKWkQCJetJQQ/er1VWzcWw5Al5QE7j5/jKbJReSIBBODnKaJwWvLoy8xePq9TewvrwGgX9dUzjtON0lEIpmSAol4hcMbF6UtXL83OBUdSRZt2sdfQ+6I/eSckfTKSvExIhGJVrmZ3hqD0MTguicX8XoUJQaVNXX86a2i4PiaKYNJjNclh0gk02+oRLzeWakM79UFgJo6x/y1e3yOqKnKmjpumrEEF7JT55dO7udvUCIS1XoGEoP80MTgqUX895OdPkfWNjM+3MKusioAcrskc9FJ+psoEumUFEhUiOQSogfeXMPaXd4C6PSkeO69QGVDInLsemZ6i48bEoOaOse1T37IGxGeGNTU1fPw3HXB8dWnDyIl0DBCRCKXkgKJCk2SglW7cA235X22dEsJfwyZIr/l7BH065rmY0Qi0pn0yvISg4aNHGvqHN+K8MTgxY+2sWWf15a5a1oiXx43wOeIRKQtlBRIVDi+fzZZqYkA7Cyt4pPtpT5HBNW19fxwxsfU1XsJyoRB3fiqPvxEJMx6ZXmlRAObJQZvroi8xKC+3vHQnLXB8eWT8klPTvAxIhFpKyUFEhUS4uOYErILZiSUED00Zy0rd5QBkJIYx/0XjlW7PRFpF72zUnmmeWLwxKKISwxeW76DdbsPApCRnMBlE/P8DUhE2kxJgUSN0BKiWT4nBSu2l/L7WY13w374ueEM7J7uY0Qi0tn1zkrl6asmMKCblxhU19XzrScWMWtlZCQGzjl+P7vx7+IlEweSlZboY0QiciSUFEjUOH1oDxrW7y7evJ/ig9W+xFFbV89NM5ZQGygbOnFANl8/Nc+XWEQktvTJ9mYMQhODax5fFBGzp3NW72b5Nq+0MyUxjisn5/sckYgcCSUFEjW6pSdxQv9sAJyDt1b7s7vxn94uYunWEgCSEuL4+UXHEa+yIRHpIH2yU3n66gn075YKeInBNx//0NfEwDnHgyGzpxefMoCcjGTf4hGRI6ekQKKK3yVEa3eV8Zs31gTH3//MUApyMzo8DhGJbX2zU3nm6omfTgxW+ZMYLFxfzAcb9wGQGG9cffogX+IQkaOnpECiytRhjUnB3NW7g51/OkJdveOmGUuorq0HYGy/LK46TdPjIuKPvtneGoN+XZsmBnN8SAweDFlLcMEJ/eiTndrhMYjIsVFSIFFlVJ9MemZ6U9IlFTUs3rSvw7733+avZ9Gm/YB3J+znF40lIV6/QiLin35d03jm6pDEoLaeqx//kLkdWF758eb9vL3G22k+zuBbUwd32PcWkfDRFY1EFTOjcFjHlxBt2HOQX76+Kji+vnAIw3tldsj3FhFpTb+uaTx91QT6ZjcmBlf9/YMOSwxCZwnOHduHvBx1YhOJRkoKJOqElhDNXtX+H3r19Y6bn11CZY1XNjS8VxfdCRORiNK/mzdj0DwxaO+GDKt2lPF6yO7K1xUWtOv3E5H2o6RAos7kITkkxnvdflZsL2V7SUW7fr8nF25k4fpiAOLjjF9+6TiSEvSrIyKRpaXE4O017ZcYhO5e/NmRPRnWq0u7fS8RaV+6spGok5GcwPj87sHx7JXt94G3ubice19dGRxfM2UQo/tmtdv3ExE5Fs0Tg6raer7x2AfMC9T8h9PGvQd56eNtwbFmCUSim5ICiUpTh/UI/u/2asHnnOPW55ZSXl0HQEFuBt+eNqRdvpeISLgcKjG48rH3w54YPDx3HQ0N4CYX5HB8YB8ZEYlOSgokKoXuVzB/7R6qauvC/j3++cHmJh01fn7RWFIS48P+fUREwq1/N2/xcZ+sFKAxMZi/NjyJwfaSCmZ8uCU41iyBSPRTUiBRaVCPDPK6pwFQXl3HwqLisJ5/R0kld/17RXB85eR8ThzQNazfQ0SkPQ3onsYzV0/8VGLwThgSgz+9VURNnTdNcNLArkwY1O2Yzyki/lJSIFGraRei8JUQOee47bmllFXVApDXPY0ffHZY2M4vItJRBnRP4+mrJ9A7kBhU1tRzxTEmBnsOVPH0e5uC4+sLCzCzY45VRPylpECiVmgJ0eww7lfw/EdbeTPkfPdfOJbUJJUNiUh0Gtg9nWcOlRisO7rE4JF564Mtmkf2zmyyxktEopeSAola4/K7kRqo8d+wt5z1ew4e8zl3lVXy0xc/CY4vmziQ8YO6t/IOEZHIN7B7Ok9fNYFemSGJwaPvs2Dd3iM6T0lFDY8v2BgcX6dZApFOQ0mBRK2UxHgmFeQEx+HY3fiOF5ZTUlEDQN/sVG46c/gxn1NEJBLk5XgzBs0Tg3eL2p4YPL5gQ7C0clCPdM4c3as9QhURHygpkKgWzhKiV5Zu59VlO4Lj+y8cS3pywjGdU0QkkuTlpPP01RPomZkMQEVNHZf/rW2JQXl1LX+dtz44vnZqAfFxmiUQ6SyUFEhUC61lXbh+LwcDd7COVPHBan7y/LLg+Mvj+jN5SE4r7xARiU75Oek8c/XETyUGCw+TGDy1cBP7yhtnUr9wfJ92j1VEOo6SAolqfbJTGd6rCwA1dY55R9lR486XlrP3YDUAvTJT+NHZI8IWo4hIpMnP8dYY5HYJSQwefZ/31h+6vXNVbR1/frsoOL5myiAS43UJIdKZhO032sz6mdkjZrbNzKrMbIOZ/cbMjri5u5mdaGZPmdmWwLl2mtlcM7u02et+ambuMF/rmr1n6mFef9+x/reQjnWsJUT//WQnL3y0LTi+94IxZKYkhiU2EZFINahHBs9c3ZgYlFfX8fW/vXfIxODZD7eys7QKgB5dkvnSyf07NFYRaX9hKZg2s8HAO0Au8AKwEhgHfBc408wmOefatJLJzK4HfgvsA14GtgLdgNHA2cDfQ14+p5VTnQecCLzawvG5Lbx/XlvilMhRODyXh+Z4ud/sVbtwzrW5G0ZJeQ23Pbc0OL7gxL4UhiQZIiKd2aAeGTx99QS+/Kd32VVWFUwMHr18HOPyvQ3JauvqeXhu4/21q07L1+7uIp1QuFZRPoSXEHzHOfe7hifN7P+A7wN3A9cc7iRmNh14APgvcJFzrqzZ8Sa3b51zczjEhb2ZxQNXBoZ/auHbzXHO/fRwMUnkO6F/NlmpiZRU1LCztIpPtpcyqk9Wm95718ufsKvMu/uVk5HM7eeObM9QRUQizuBAYnDxn95ld0hi8NgV4zglrxsvLdnGpuJyALLTEvnq+IE+Rywi7eGYy4cCswTTgQ3Ag80O3wEcBC4xs/Q2nO4XQAXwleYJAYBzrqaNYZ0N9APedc4taeN7JEolxMcxZWjjguO2lhDNXb2bf324JTi+64ujyU5LCnt8IiKRbnCPDJ6+agI9QkuJHvFKiR6a3ThLcPmp+erKJtJJhWNNQWHg8XXnXH3ogcCF/XwgDZjQ2knMbDQwFngdKDazQjO70cxuMLMzzOxIYr068NjSLAFAgZldb2a3mtkVZjbkCM4vEaZweEhSsGr3YV9fVlnDj55tzBfPHdtb/bZFJKYV5HqJQU6GlxgcrK7jK39+lzW7DgCQnhTP10/N8zFCEWlP4Uj3hwUeV7dwfA3eTMJQ4M1WznNK4HEXXknQ6c2OLzWzC5xza1sLxsz6AWcBJcA/WnnpVwNfoe99FrjKObevte8R8voPWzikHa862JShuZiBc7B40z72Hayma3rLd/3ve3Ul20oqAeiWnsSdnx/VUaGKiESsgtwMnrl6PBf/aSF7DlRRW++Cx742cSBZaWrCINJZhWOmoKF4u6SF4w3PZx/mPA2rO68E8oBzAuceCjwBjAFeNrPD1XdcCcQDTzjnyg9xfDdwS+B8XYAeeEnEYuBC4KUjnJWQCNAtPYkT+ns/YvXOKw1qyTvr9vDkwk3B8U8/P4rugTtjIiKxriC3C09fNZ6cjMaP2+SEOL4xeZCPUYlIe4uki9+GWOKBi51zrzjnSp1za4BLgQ/wEoQLWzpB4GK+YYHxHw/1Gufccufc/c65Zc65A865Pc65/wBTgfXAJLzORYflnDvpUF943ZekgxUOC2lNuurQ6wrKq2u55dnGbkPTR/bkvLG92z02EZFoMqRnF56+agK9s1IA+Pa0guB6AxHpnMKRFDTMBLTU7qXh+f2HOU/D8R3OuQWhB5xzDq/VKXitTltyFtAfb4Hx0lZe9ynOuVLgqcCweemSRIHQVqJzV++mLmTau8EvXlsV7KKRmZLAXV8c3eb2pSIisWRIzy7MvnEqc384lesKC/wOR0TaWTiSglWBx6EtHG9YwNvSmoPm52kpeWio809t5RwNC4wPOUvQBg01J23plCQRZlSfzOAmPPvLa1i8qenSkA82FPPoOxuC49vPG0VuZkpHhigiElVSEuMZ2D1dN09EYkA4koLZgcfpzWvxzawLXjlOOfDuYc7zLl770rwW2peODjyuP9SbzawP3jqEwy0wbk1Dh6SiVl8lEcnMWiwhqqyp46YZS3CByYOpw3pw4Yl9OzpEERERkYh0zEmBc24dXhvRPOC6ZofvxLvr/rhz7mDDk2Y23MyadOgJLAr+K5AC3GUhtyXMbAzwdaAWmNFCKA0LjB93zlW0FK+ZndzC818D/h9QDfyzpfdLZAstIZq1snGx8a/fWE3RHu9HMCM5gXvOH6M7XyIiIiIB4dqB5FrgHeABMzsDWAGMx9vDYDVwW7PXrwg8Nr8q+wlePf/3gIlmNh/oCVyAlyx8L5CENNFsgXFrexMAzDCzWryFy1sC5z0Fb61CLfBN59yGw5xDItTkITkkxhs1dY4V20vZXlLBrtIq/vxW4+TPrWePoE92a1VoIiIiIrElLEmBc25d4A78z4Az8XYU3g78FrizrX3/nXOlZnYa8CPgS8D1eDsczwN+6Zx7vYW3fg4YSNsWGP8B+AxeWVMOXmKyFXgU+I1z7uO2xCqRKSM5gXH53Zi/di8Ary/fyZMLN9Kw5vjUwd358rj+PkYoIiIiEnnCtle5c24zcHkbX9ti3YZz7gDezELz2YXWzvcqn551aOm19wP3t/XcEn0Kh+UGk4J7X11BZY230XZqYjz3XzhWZUMiIiIizUTSPgUiYTEtZF1BQ0IAcPOZw+jfLc2PkEREREQimpIC6XTyc9IZ2L3pxf8peV25dGKePwGJiIiIRDglBdLpNG9NmpwQx/0XjiUuTmVDIiIiIoeipEA6pYvH9Sc5wfvxvu2cEQzqkeFzRCIiIiKRK2wLjUUiyfBembzxgykcqKplRO9Mv8MRERERiWhKCqTT0qJiERERkbZR+ZCIiIiISIxTUiAiIiIiEuOUFIiIiIiIxDglBSIiIiIiMU5JgYiIiIhIjFNSICIiIiIS45QUiIiIiIjEOCUFIiIiIiIxTkmBiIiIiEiMU1IgIiIiIhLjlBSIiIiIiMQ4JQUiIiIiIjFOSYGIiIiISIxTUiAiIiIiEuOUFIiIiIiIxDglBSIiIiIiMc6cc37H0OmY2d7U1NRuI0aM8DsUEREREenEVqxYQUVFRbFzrvuxnEdJQTsws/VAJrChg7/18MDjyg7+vhId9PMhLdHPhrREPxvSGv18RIY8oNQ5l39RYR1GAAAGi0lEQVQsJ1FS0ImY2YcAzrmT/I5FIo9+PqQl+tmQluhnQ1qjn4/ORWsKRERERERinJICEREREZEYp6RARERERCTGKSkQEREREYlxSgpERERERGKcug+JiIiIiMQ4zRSIiIiIiMQ4JQUiIiIiIjFOSYGIiIiISIxTUiAiIiIiEuOUFIiIiIiIxDglBSIiIiIiMU5JgYiIiIhIjFNS0AmYWT8ze8TMtplZlZltMLPfmFlXv2MT/5hZdzP7hpk9Z2ZrzazCzErMbJ6ZXWlm+v2XJszsa2bmAl/f8Dse8ZeZnRH4+7Ej8NmyzcxeM7Oz/Y5N/GVm55jZ62a2JfDZUmRm/zKziX7HJkdPm5dFOTMbDLwD5AIvACuBcUAhsAqY5Jzb61+E4hczuwb4A7AdmA1sAnoCFwBZwLPAl5z+CAhgZv2BpUA8kAFc5Zz7i79RiV/M7OfAD4EtwKvAHqAHcBLwhnPuJh/DEx+Z2f3ATcBe4Hm8n40C4PNAAnCpc+4J/yKUo6WkIMqZ2WvAdOA7zrnfhTz/f8D3gT86567xKz7xj5lNA9KBl51z9SHP9wLeA/oDFznnnvUpRIkQZmbAf4F8YCZwI0oKYpaZXQX8CXgMuNo5V93seKJzrsaX4MRXgc+PrcBuYKxzblfIsUJgFrDeOTfIpxDlGKh8IIoFZgmmAxuAB5sdvgM4CFxiZukdHJpEAOfcLOfcS6EJQeD5HcDDgeHUDg9MItF3gGnA5Xh/NyRGmVkycDfezOKnEgIAJQQxbSDetePC0IQAwDk3GyjDm1GSKKSkILoVBh5fP8SFXxkwH0gDJnR0YBLxGj7Ua32NQnxnZiOA+4DfOufe8jse8d1n8S7qZgL1gdrxm83su6oXF2ANUA2MM7Oc0ANmdjrQBXjDj8Dk2CX4HYAck2GBx9UtHF+DN5MwFHizQyKSiGdmCcClgeF//IxF/BX4WXgc767wrT6HI5HhlMBjJbAYGB160Mzewis73N3RgYn/nHPFZnYz8H/AJ2b2PN7agsF4awr+C3zTxxDlGCgpiG5ZgceSFo43PJ/dAbFI9LgP74P+Fefca34HI766HTgBmOycq/A7GIkIuYHHHwKfAKcBH+GtN/kl3o2mf6HSw5jlnPuNmW0AHgGuCjm0Fni0eVmRRA+VD4nEEDP7DnADXpeqS3wOR3xkZuPxZgd+5Zxb4Hc8EjEargtqgc875+Y55w4455YC5+N1I5qiUqLYZWY3ATOAR/FmCNLxulIVAU8GOldJFFJSEN0aZgKyWjje8Pz+DohFIpyZXQ/8Fu/uX6FzrtjnkMQngbKhv+OVHv7E53AksjR8Xix2zm0IPeCcKwcaZhfHdWRQEhnMbCpwP/Cic+4Hzrki51y5c24RXtK4FbjBzNR9KAopKYhuqwKPQ1s4PiTw2NKaA4kRZvY94HfAMryEYIfPIYm/MvD+bowAKkM2LHN4ncsA/hx47je+RSl+aPhcaelm0r7AY2oHxCKR59zA4+zmBwJJ43t415YndGRQEh5aUxDdGn4pp5tZXLNe9F2ASUA58K4fwUlkCCwKuw+vLvizzrk9Pock/qsC/trCsRPxPtDn4V0gqrQotrwJOGBk88+VgIaFx+s7NiyJEMmBx5bajjY8/6lWthL5tHlZlNPmZdIaM/sJ8DPgQ2C6SobkcMzsp3izBdq8LEaZ2Qt4nWR+4Jz7dcjz0/E6lpUAec65lppcSCdlZv8D/APYCZzknNsacuws4GW8mw79nHN7/YlSjpZmCqLftcA7wANmdgawAhiPt4fBauA2H2MTH5nZZXgJQR3wNvAdb+PaJjY45x7t4NBEJLJdhzdb9H9mdg5ea9J84It4f0++oYQgZs3A24fgM8AKM3sO2IFXinguYMAtSgiik5KCKOecW2dmJ+Nd/J0JnA1sx1tQeqdzbl9r75dOLT/wGA98r4XXzMXrICEiAoBzbouZnYTXsvbzwOlAKfAScK9z7j0/4xP/OOfqzexsvMTxYrzFxWlAMfAK8IBz7nUfQ5RjoPIhEREREZEYp+5DIiIiIiIxTkmBiIiIiEiMU1IgIiIiIhLjlBSIiIiIiMQ4JQUiIiIiIjFOSYGIiIiISIxTUiAiIiIiEuOUFIiIiIiIxDglBSIiIiIiMU5JgYiIiIhIjFNSICIiIiIS45QUiIiIiIjEOCUFIiIiIiIxTkmBiIiIiEiMU1IgIiIiIhLjlBSIiIiIiMQ4JQUiIiIiIjHu/wMadUunmAjbwwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 386
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(cvr_auc_stat['test'], label='Test AUC')\n",
    "plt.legend()\n",
    "_ = plt.ylim()\n",
    "print(cvr_auc_stat['test'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示训练CTCVR AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.5308378498620058, 0.6048550256609688, 0.6228321760874248, 0.645293988434576, 0.6309126778147603, 0.6449929823197275, 0.6481028521695892, 0.6369368310122769, 0.6308585396068872, 0.6437531837870217]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 380
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(ctcvr_auc_stat['train'], label='Training AUC')\n",
    "plt.legend()\n",
    "_ = plt.ylim()\n",
    "print(ctcvr_auc_stat['train'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 显示测试 CTCVR AUC"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.6560304139168838, 0.6267024212375301, 0.6424437076552957, 0.6424385892315969, 0.6543788666296904, 0.6348260931385685, 0.6228499600051528, 0.6297117801032267, 0.6560197740830476, 0.6543696257812205]\n"
     ]
    },
    {
     "data": {
      "image/png": "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rD2n5ISSlJQUAJ544gluuOGGFh3TsWNH7r77bu6++26++OILli1bxhNPPMGTTz7J/v37eeONN1odV22B8b///e8mh9BrOxOlpaXV+1lqE53G5OXlAdRbs2H48OGkpaWRl5fH//73vxMqhBYRaUzH+Bhmn96fB9/bDsDDS3dwweie9f6e3fPGZpZvPeTbvu9rYzild+djziUioUctSSXk1BbWvv/++yd1fL9+/bj22mt59913ycjIYMmSJZSVlQH47rjX1NSc0Dmzs7N59913SU1N5cYbb2z0a9KkSVRWVvL000/7jsvMzCQqKop169bVG9nwVztdasyYMb7njDHcdNNNAPz2t79tNr6KiooT+nlEJDLNPmMAHbzTgDYdKCTLLwF48dPdPPHBTt/2d88ezEVjeh1zDhEJTUoKJOScddZZjB8/nueee44XXnih0dd89tlnHDlyBHCKcmvrC/wVFRVRUlJCXFycLxno0KEDHTp0YPfu3ce8/nhqC4xvvPFG5s+f3+hX7UiC/5oFKSkpXHbZZZSVlXHHHXccc97s7GweeOABwOli5O+OO+5g2LBhvPnmm8yZM4eioqJjji8oKODOO+9k3rx5J/TziEhkSk2K44pJfXzbjyzdAcCnu/J93YkAvjyqBz84Z2i7xycibUfThyTkGGN46aWXmDFjBldeeSV//vOfOfXUU0lOTmbv3r2sXr2azZs3s27dOrp06cKOHTuYMmXBiB4MAAAKmElEQVQK48aNIzMzk4yMDI4ePcrixYs5evQod955J3Fxcb7zz5gxg9dee43LL7+c0aNHExMTwznnnNNk68/q6mqeeuopAN/d+8aMGTOGiRMnsnLlSpYtW8ZZZ50FOIumrVmzhoceeoisrCxmzJhBx44dyc7OZtGiRZSWlvKb3/yGiRMn1jtfp06dePvtt5k1axbz58/n5ZdfZubMmQwYMICamhq2bt3Ke++9R3FxMQsWLGjlf3URiRRzpgzkuRVfUFVj+WRXPgtX7+O3r22kqsbpNDSiZyf+8vWxRDVShCwioUtJgYSkgQMHsnr1ah544AFeeeUVnnnmGay19OzZk1GjRvGjH/2IwYMHA878+1/+8pdkZWXxzjvvcPjwYbp27cqIESO4//77+epXv1rv3I8++ii33XYbWVlZLFy4EI/HQ0JCQpNJweLFi8nJyWHKlCkMHXr8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1M2kI97HDu0QiwSXC72PSxvu8CaMn+B8rhzXnkFJ4KimILTV/sOcaYyJatCLPhk4AygFVrgRnAQHb2HYH3DmBZ9rrc1zOSRxXwXwRBP7xuO8qX+A8wFRU4siy7uABUY2fF/xqi083tm+YUkQiPc+NtV2tPb5Y9rYSmjQ4mUhTouXyfEYY34B/AZYBczUlCFpjjHmVzijBVq8LEIZYxbhdJP5P2vtX/2en4nTsawA6G+tbarJhYQhY8zXgReBg8AEa+0+v31fAV7HueHQ21p72J0opTU0UhD65gIfAQ8aY2YAm4Av4axhsBX4mYuxiYuMMdfhJAQ1wPvA95yFa+vZZa1d0M6hiUhwuxVntOgvxpgLcFqTDgAuxfl7cpMSgoj0Ms46BOcAm4wxrwA5ONMQLwQM8FMlBKFLSUGIs9buMMZMxPnwdx5wPnAAp6D019baI8c7XsLaAO9jNHBbE69ZhtNFQkQEAGvtXmPMBJyWtRcDU4FCYDFwj7X2EzfjE3dYaz3GmPNxksYrcIqLE4F84L/Ag9baJS6GKK2k6UMiIiIiIhFO3YdERERERCKckgIRERERkQinpEBEREREJMIpKRARERERiXBKCkREREREIpySAhERERGRCKekQEREREQkwikpEBERERGJcEoKREREREQinJICEREREZEIp6RARERERCTCKSkQEREREYlwSgpERERERCKckgIRERERkQinpEBEREREJMIpKRARERERiXBKCkREREREItz/A4j2t4oLVodWAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 386
      },
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(ctcvr_auc_stat['test'], label='Test AUC')\n",
    "plt.legend()\n",
    "_ = plt.ylim()\n",
    "print(ctcvr_auc_stat['test'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 总结\n",
    "\n",
    "ESMM模型利用用户行为序列数据在完整样本空间建模，避免了传统CVR模型经常遭遇的样本选择偏差和训练数据稀疏的问题，取得了显著的效果。另一方面，ESMM模型首次提出了利用学习CTR和CTCVR的辅助任务迂回学习CVR的思路。ESMM模型中的BASE子网络可以替换为任意的学习模型，因此ESMM的框架可以非常容易地和其他学习模型集成，从而吸收其他学习模型的优势，进一步提升学习效果，想象空间巨大。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 引用\n",
    "[1] Xiao Ma, Liqin Zhao, Guan Huang, Zhi Wang, Zelin Hu, Xiaoqiang Zhu, and Kun Gai. 2018. Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate. SIGIR (2018)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "今天的分享就到这里，请多指教！"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
